WordPress

WordPressでfunctions.phpに記述しておくと良い5つの設定まとめ

wordpress
WordPressでfunctions.phpに記述しておくと良いつの設定まとめです。functions.phpに記述しても良いし、プラグイン化しても良いと思います。いつも記述するので備忘録的にまとめておきます。

やることは、

  1. カテゴリ一覧の記事数をリンク内に入れる
  2. excerpt(抜粋)文字数変更
  3. モバイル用(スマートフォン用)の条件分岐設定
  4. コメント欄のメールやサイト、余計な文章を削除する
  5. 記事を登録するときに英数字の半角全角を整える

です。他にもいろいろあるので、公開していきます。プラグイン化の方法も。。

テーマのfunctions.phpというのは、WordPressでサイトを生成するルール(機能)を書いておくようなものです。ルールを書いておくと、あとは自動的にWordPressがサイトを生成するときに、そのルールに則って動作してくれます。

本記事は小テーマのfunctions.phpに記述する方法で統一します。直接テーマに記述する場合は、同じfunctionがないかチェックして、あればそこを書き換えればOKです。

便利ですが、その分間違うと画面が真っ白になってしまったりするので、取扱いは注意です。

カテゴリ一覧の記事数をリンク内に入れる

通常、ウィジェットなどでカテゴリを配置し、記事数を表示にすると、カテゴリ名がリンクになり、記事数はテキスト表示になります。

category上記画像では、カテゴリ名が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 プラグイン 作成」とかで検索すると幸せになれそうです。

コメントを残す