WordPressでfunctions.phpに記述しておくと良いつの設定まとめです。functions.phpに記述しても良いし、プラグイン化しても良いと思います。いつも記述するので備忘録的にまとめておきます。
やることは、
- カテゴリ一覧の記事数をリンク内に入れる
- excerpt(抜粋)文字数変更
- モバイル用(スマートフォン用)の条件分岐設定
- コメント欄のメールやサイト、余計な文章を削除する
- 記事を登録するときに英数字の半角全角を整える
です。他にもいろいろあるので、公開していきます。プラグイン化の方法も。。
テーマのfunctions.phpというのは、WordPressでサイトを生成するルール(機能)を書いておくようなものです。ルールを書いておくと、あとは自動的にWordPressがサイトを生成するときに、そのルールに則って動作してくれます。
本記事は小テーマのfunctions.phpに記述する方法で統一します。直接テーマに記述する場合は、同じfunctionがないかチェックして、あればそこを書き換えればOKです。
便利ですが、その分間違うと画面が真っ白になってしまったりするので、取扱いは注意です。
カテゴリ一覧の記事数をリンク内に入れる
通常、ウィジェットなどでカテゴリを配置し、記事数を表示にすると、カテゴリ名がリンクになり、記事数はテキスト表示になります。
上記画像では、カテゴリ名がCSSやHTMLなどで、記事数が(5)の部分です。
それはそれで見やすいし問題ないのですが、カテゴリのリスト(li)のカテゴリ部分(a)をdisplay:blockにしたりして、リスト部分全体を選択できるようにしたり、マウスオーバー時にリスト全体の色を変えたりする場合に、表示が崩れてしまいます。
「CSS(5)」全体がリンクになるような設定です。
記述するコードは以下です。
add_filter( 'wp_list_categories', 'my_list_categories', 10, 2 ); function my_list_categories( $output, $args ) { $output = preg_replace('/<\/a>\s*\((\d+)\)/',' ($1)</a>',$output); return $output;}
excerpt(抜粋)文字数変更
excerpt(抜粋)とは、WordPressのカテゴリやアーカイブ、検索結果などで利用されることが多い(テーマにより異なる)、本文のある程度の文字数を抜粋して表示しているものです。トップページなどでも利用されているテーマもあります。
ただ、デフォルトの文字数が決まっており、サイトによっては文字数を変更したい場合があると思いますので、その場合のコードです。
function new_excerpt_mblength($length) { return 400; } add_filter('excerpt_mblength', 'new_excerpt_mblength');
モバイル用(スマートフォン用)の条件分岐設定
スマートフォンユーザが増え、モバイルファーストなどモバイルを優先してサイトを作成するケースが増えています。
またモバイル向けの広告も増えています。
モバイル向け広告の一部はPCの閲覧者には非表示にしてくれたりしてくれますが、JavaScriptを読むこむのは無駄な通信になってしまいます。
PC用とモバイル用で表示を切り分けるときのコードです。まず、以下のコードをfunctions.phpに記述します。ユーザエージェントは最近更新していないので、適宜変えてください(教えてください)。
function is_mobile(){ $useragents = array( 'iPhone', // iPhone 'iPod', // iPod touch 'Android', // 1.5+ Android 'dream', // Pre 1.5 Android 'CUPCAKE', // 1.5+ Android 'blackberry9500', // Storm 'blackberry9530', // Storm 'blackberry9520', // Storm v2 'blackberry9550', // Storm v2 'blackberry9800', // Torch 'webOS', // Palm Pre Experimental 'incognito', // Other iPhone browser 'webmate' // Other iPhone browser ); $pattern = '/'.implode('|', $useragents).'/i'; return preg_match($pattern, $_SERVER['HTTP_USER_AGENT']); }
そして、モバイルのみで表示ししたい部分を以下のコードで記述します。
<?php if(is_mobile()){ ?> <!-- ここにモバイルで表示したいコードを記述する --> <?php } ?>
コメント部分は削除してOKです。
PCのみで表示したい場合は、以下のコードです。
<?php if(! is_mobile()){ ?> <!-- ここにPCで表示したいコードを記述する --> <?php } ?>
PCとモバイルで切り分ける場合は以下のコードで。
<?php if(is_mobile()){ ?> <!-- ここにモバイルで表示したいコードを記述する --> <?php }else{?> <!-- ここにPCで表示したいコードを記述する --> <?php } ?>
コメント欄のメールやサイト、余計な文章を削除する
別記事で書いたので、下記を参照ください。
WordPress コメント入力欄をカスタマイズしてウェブサイト(URL)やメールアドレスを簡単に消す方法
記事を登録するときに英数字の半角全角を整える
慣れている人は、数字や英語は半角、カタカナなどは全角というように書いていると思うのですが、複数人で編集している場合に、全角英語や半角カタカナが混ざってしまうのが嫌という場合には、以下のコードを記述してください。
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' );
mb_convert_kanaというPHPのメソッドを利用しています。記事の投稿時に書き換えして登録する形ですね。mb_convert_kanaのルールが知りたい場合は、mb_convert_kanaを適当にググってください。
WordPressでfunctions.phpに記述しておくと良い5つの設定まとめ
プラグイン化しておくと、テーマの変更時にも設定を引き継ぎしてくれるので便利です。いずれ記事にしますが、急いでやりたい場合は、「WordPress プラグイン 作成」とかで検索すると幸せになれそうです。