WordPressで英数カタカナの半角全角自動変換(function.php)

Filed under: wordpress — kdcs @ 17年8月21日 月曜日

WordPressで記事のタイトルや内容で英数やカタカナの半角全角自動変換を行う方法
function.phpに以下を記述すると全角英数を半角へ、半角カタカナを全角へ変換する

phpの「mb_convert_kana」

function convert_content( $data ) {
    $convert_fields = array( 'post_title', 'post_content' );
    foreach ( $convert_fields as $convert_field ) {
        $data[$convert_field] = mb_convert_kana( $data[$convert_field], 'aKV', 'UTF-8' );
    }
    return $data;
}
add_filter( 'wp_insert_post_data', 'convert_content' );

4行目の「aKV」の部分が変換項目
a:「全角」英数字を「半角」に変換
K:「半角カタカナ」を「全角カタカナ」に変換
V:濁点付きの文字を一文字に変換します。”K”, “H” と共に使用

r:「全角」英字を「半角」に変換
R:「半角」英字を「全角」に変換
n:「全角」数字を「半角」に変換
N:「半角」数字を「全角」に変換
s:「全角」スペースを「半角」に変換
S:「半角」スペースを「全角」に変換

wordpress カスタムフィールド出力の文字数制限

Filed under: php,wordpress — kdcs @ 17年2月26日 日曜日

wordpressでテキスト入力のカスタムフィールドを出力する場合にある程度文字出力をそろえたい。
※文字数制限の後に「…」を付ける

「mb_substr()」を使用する方法

<?php $text = mb_substr(get_field('カスタムフィールド名'),0,30,'utf-8'); echo $text.'...'; ?>

「mb_strimwidth()」を使用する方法

<?php echo mb_strimwidth(nl2br(post_custom('カスタムフィールド名')),0,100,'...','utf-8'); ?>

「mb_strimwidth()」は1バイト文字(半角)を1とカウント、2バイト文字(全角)を2とカウントするので文字出力がそろえやすい。

wordpress 公開記事にnewマークを付ける

Filed under: php,wordpress — kdcs @ 16年11月26日 土曜日

公開日時を基準とした場合
「date_i18n」はwordpressで日本時間を取得する関数

(続きを読む…)

カスタム投稿タイプの記事掲載と改行させず、コンテンツの文字制限

Filed under: wordpress — kdcs @ 16年10月20日 木曜日

カスタム投稿タイプを固定ページに表示させる方法
例:カスタム投稿タイプ「event」 表示件数3件

<?php
    $args=array(
        'post_type' => 'event', //カスタム投稿名
        'posts_per_page'=> 3 //表示件数(-1で全ての記事を表示)
    );
 ?>
<?php query_posts( $args ); ?>
<?php if(have_posts()): ?>
<?php while(have_posts()):the_post(); ?>
<?php the_content(); ?>
<?php endwhile; else: //記事が無い場合 ?>
記事が無い場合の処理
<?php endif; wp_reset_query(); //クエリのリセット ?>

単に改行させないだけなら以下

<?php remove_filter('the_content', 'wpautop'); ?>
<?php the_content(); ?>

コンテンツに文字制限を行う
例:200文字で制限し、それを超えると「…」を文末に付ける

<?php the_content(); ?>

この部分を以下に書き換える

<?php
if(mb_strlen($post->post_content,'UTF-8')>200){
	$content= str_replace('\n', '', mb_substr(strip_tags($post-> post_content), 0, 200,'UTF-8'));
	echo $content.'...';
}else{
	echo str_replace('\n', '', strip_tags($post->post_content));
}
?>

別のwordpressからfeedを取得する

Filed under: php,wordpress — kdcs @ 16年8月24日 水曜日

別のwordpressからfeedを取得する方法 php

特定のカテゴリーのフィードを取得したい場合は〇〇〇にカテゴリースラッグ

<?php
include_once(ABSPATH . WPINC . '/rss.php');
define('MAGPIE_OUTPUT_ENCODING' , 'UTF-8');
define('MAGPIE_CACHE_DIR' , './cache');
define('MAGPIE_FETCH_TIME_OUT', 30);
define('MAGPIE_CACHE_AGE', 60*60);
$rss = fetch_rss('http://hogehoge.com/○○○/feed');
$maxitems = 3;
$items = array_slice($rss->items, 0, $maxitems);
?>
<ul>
<?php if (empty($items)) echo '<li>No items</li?>';
else
foreach ( $items as $item ) : ?>
<li>
<span>
<?php $item_date  = $item['pubdate'];
       $out_item_date  = date('Y.n.j', strtotime($item_date));
       echo $out_item_date; ?>
</span>
<a href='<?php echo $item['link']; ?>' target="_blank">
<?php echo $item['title']; ?>
</a></li>
<?php endforeach; ?>

カスタム投稿タイプのfeedを取得する
slugのところにカスタム投稿タイプのスラッグを入れる

http://hogehoge.com/feed?post_type=slug

カスタム投稿タイプ+カスタム分類を指定(未検証)
カスタム投稿タイプのスラッグが「slug」で、この投稿タイプにおけるカスタム分類名(今回の例ではgenre)が「social」の場合。

http://hogehoge/feed?post_type=slug&genre=social

サイト内検索

カテゴリー

最近の投稿

↑上に戻る