2017.9.4現在
WordPress最新バージョン 4.8.1
推奨動作環境
PHP バージョン 7 以上
MySQL バージョン 5.6 以上 または MariaDB バージョン 10.0 以上
WordPress 4.1から最新の4.8までの最低動作環境
PHP バージョン 5.2.4 以上
MySQL バージョン 5.0 以上
2017.9.4現在
WordPress最新バージョン 4.8.1
推奨動作環境
PHP バージョン 7 以上
MySQL バージョン 5.6 以上 または MariaDB バージョン 10.0 以上
WordPress 4.1から最新の4.8までの最低動作環境
PHP バージョン 5.2.4 以上
MySQL バージョン 5.0 以上
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でテキスト入力のカスタムフィールドを出力する場合にある程度文字出力をそろえたい。
※文字数制限の後に「…」を付ける
「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とカウントするので文字出力がそろえやすい。
公開日時を基準とした場合
「date_i18n」はwordpressで日本時間を取得する関数
カスタム投稿タイプを固定ページに表示させる方法
例:カスタム投稿タイプ「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));
}
?>