WordPressテーマの設定をカスタマイズする際に役に立つ functions.php のコード設定例を紹介します。頻繁に利用される実用的なコードを集めてみました。

functions.php をカスタマイズすれば、WordPressテーマの機能や設定を自分好みに調整できます。この機能を利用するには、PHPの知識が必要ですが、一度慣れてしまえばそれ程難しくありません。

下記に頻繁に利用するコードをまとめました。あなたのWordPressテーマの設定をカスタマイズする際に活用して下さい。

はじめに

functions.php とは?

PHP

functions.php とは、WordPressテーマの設定を定義するPHPの関数ファイルです。WordPressテーマで利用する機能をPHPの関数ファイルに予め定義します。

functions.php をカスタマイズする際は、PHPで記述する必要があります。WordPressの仕組みとPHPを理解している方のみ利用して下さい。

必ずバックアップをお取り下さい

functions.php に変更を加える前に、必ずバックアップをお取り下さい。

PHPの記述方法を間違うと、最悪の場合、PHPの構文エラーが発生し、管理画面にアクセスできない状態になる場合があります。変更を加える前に、必ずWordPressテーマのPHPファイルをバックアップした上で作業して下さい。

functions.php の場所

WordPress管理画面 > 外観 > テーマ編集 > テーマのための関数 (functions.php)

記事本文・抜粋・タイトルの設定

「続きを読む」リンクから「#more-」を取り除く

MOREタグを使用した際に表示される [続きを読む]のリンクから「#more-」を取り除くコードです。MOREタグを設定したページの途中からではなく、ページ先頭から表示するようになります。

ユーザーに対して、記事の先頭から改めて読ませたい場合に利用します。URLの語尾に「#more-」が付かなくなるので、URLもスッキリします。

// 「続きを読む」をページ先頭から表示する
function remove_more_jump_link($link) { 
$offset = strpos($link, '#more-');
if ($offset) {
$end = strpos($link, '"',$offset);
}
if ($end) {
$link = substr_replace($link, '', $offset, $end-$offset);
}
return $link;
}
add_filter('the_content_more_link', 'remove_more_jump_link');

「続きを読む」のカスタマイズ方法の詳細は、WordPress Codex に情報がまとめられています。

WordPress Codex

「続きを読む」のカスタマイズ

自動整形を停止する

PタグとBRタグを整頓する自動整形処理(wpautop)を停止するコードです。

// 記事本文の自動整形を停止する
remove_filter('the_content', 'wpautop');

// 抜粋の自動整形を停止する
remove_filter('the_excerpt', 'wpautop');

特殊文字の変換停止

タイトルや記事本文の特殊文字の自動変換処理(wptexturize)を停止をするコードです。タイトルや記事本文の記号が自動的に特殊なコードに変換されるのを止めたい場合は、下記コードを利用して変換を停止して下さい。

// 記事タイトルの特殊文字の変換停止
remove_filter('the_title', 'wptexturize');

// 記事本文の特殊文字の変換停止
remove_filter('the_content', 'wptexturize');

使用例

WP Social Bookmarking Lightなどを利用してツイッターに投稿する際に、記号が自動変換され、ツイートの見栄えが悪くなることを改善できます。

サムネイル画像の設定

自分で定義したサムネイル画像を追加する

自分で新たに定義したサムネイル画像を追加するコードです。標準で登録されている大・中・小のサムネイル画像とは別のサムネイル画像を追加する場合は、下記の様にコードを登録します。「add_img01、add_img02」がサムネイル画像の名前です。数値は画像の縦横の長さです。名前と数値を変更して利用して下さい。

// 自分で定義したサムネイル画像を登録する
if (function_exists('add_theme_support')) {
add_theme_support('post-thumbnails');
add_image_size( 'add_img01', 200, 100, true );
add_image_size( 'add_img02', 50, 25, true );
}

上記で新たに登録したサムネイル画像は、下記のPHPコードでサムネイル画像を表示できます。

// 登録したサムネイル画像を表示するPHPコード
<?php the_post_thumbnail('add_img01'); ?>

RSSフィードの設定

RSSフィードにアイキャッチ画像を出力する

RSSフィードにアイキャッチ画像を出力するコードです。Pタグで囲ったアイキャッチ画像が記事本文の上に出力されます。

ユーザーがフィードリーダーで購読する場合、記事の先頭にアイキャッチ画像があった方が見栄えが良く、記事の内容を推測しやすいです。

// RSSフィードにアイキャッチ画像を出力する
function rss_post_thumbnail($content) {
global $post;
if(has_post_thumbnail($post->ID)) {
$content = '<p>' . get_the_post_thumbnail($post->ID) . '</p>' . $content;
}
return $content;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');

feedly で購読した場合の表示例

記事の見出し・抜粋・アイキャッチ画像が全て表示された方が記事の内容が分かりやすい。

feedly

RSSフィード出力例

RSSフィードのdescriptionの中にアイキャッチ画像を出力します。

<item>
<title>
SportsPress - スポーツクラブの公式サイトやファンサイトを構築できるWordPressプラグイン
</title>
<link>http://netaone.com/wp/sportspress/</link>
<comments>http://netaone.com/wp/sportspress/#comments</comments>
<pubDate>Tue, 05 Aug 2014 09:53:52 +0000</pubDate>
<dc:creator>
<![CDATA[ ネタワン管理人 ]]>
</dc:creator>
<category>
<![CDATA[ WordPressプラグイン ]]>
</category>
<category>
<![CDATA[ ビジネス ]]>
</category>
<category>
<![CDATA[ wordpress ]]>
</category>
<category>
<![CDATA[ サッカー ]]>
</category>
<category>
<![CDATA[ スポーツクラブ ]]>
</category>
<category>
<![CDATA[ プラグイン ]]>
</category>
<category>
<![CDATA[ ワードプレス ]]>
</category>
<guid isPermaLink="false">http://netaone.com/?p=10651</guid>
<description>
<![CDATA[
<p><img width="600" height="194" src="http://netaone.com/wp-content/uploads/2014/08/sportspress_head.png" class="attachment-post-thumbnail wp-post-image" alt="SportsPress" /></p>
<p>SportsPressは、サッカーなどのスポーツクラブの公式サイトやファンサイトを構築・運営できるプラグインです。サッカー、野球、バスケットボール、アメフト、ラグビーなどのクラブ情報を管理できます。 このプラグインを利用 [&#8230;]</p>
<p>この記事の配信元サイト: <a rel="nofollow" href="http://netaone.com">ネタワン</a></p>
]]>
</description>
<wfw:commentRss>http://netaone.com/wp/sportspress/feed/</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>

ウィジェットの設定

テキストウィジェットでショートコードを利用可能にする

テキストウィジェットでショートコードを利用可能にするコードです。

テキストウィジェットでショートコードを利用可能にしておけば、頻繁に利用するHTMLパーツをショートコードに登録して使い回せます。つまり、WordPressの運用を効率化できます。

ショートコードを管理するプラグインは、Post Snippets、Shortcoderなどがあります。

// テキストウィジェットでショートコードを利用可能にする
add_filter('widget_text', 'do_shortcode');

参考

ヘッダーの設定

ヘッダーにある不要なタグを削除する

WordPressのデフォルトのテーマを利用している場合、ヘッダーに不要なタグが出力されています。不要なタグは削除してダイエットしましょう。

// ヘッダーにある不要なタグを削除する
remove_action('wp_head', 'wp_generator');
remove_action('wp_head', 'wlwmanifest_link');
remove_action('wp_head', 'rsd_link');

HTML出力例

<meta name="generator" content="WordPress 3.9.2" />
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://netaone.com/wp-includes/wlwmanifest.xml" /> 
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://netaone.com/xmlrpc.php?rsd" />

不要なタグの詳細情報

wp_generator WordPressのバージョンを出力します。不要なので削除しましょう。
wlwmanifest_link Windows Live Writerで投稿する際に利用されます。利用しない場合は不要なので削除しておきましょう。
rsd_link RSD(Really Simple Discovery)のタグを出力します。外部ツールを利用してリモート投稿する際に利用されます。利用しない場合は不要なので削除しておきましょう。

カスタム投稿タイプの設定

カスタム投稿タイプを利用している場合に役に立つかもしれないコードです。利用していない場合は記述しないで下さい。

RSSフィードにカスタム投稿タイプの内容を出力する

カスタム投稿タイプの内容をRSSフィードに出力するコードです。「カスタム投稿タイプの名前」の部分は、あなたが使用している名前に変えて利用して下さい。

// RSSフィードにカスタム投稿タイプを独自に出力する
function custom_post_rss_set( $query ) {
    if ( is_feed() ) {
        $post_type = $query->get( 'post_type' );
        if ( empty( $post_type ) ) {
            $query->set( 'post_type', array( 'post', 'カスタム投稿タイプの名前' ) );
        }
        return $query;
    }
}
add_filter( 'pre_get_posts', 'custom_post_rss_set' );

AddQuickTag をカスタム投稿タイプでも利用可能にする

AddQuickTag をカスタム投稿タイプで利用可能にするコードです。「カスタム投稿タイプの名前」の部分は、あなたが使用している名前に変えて利用して下さい。

// AddQuickTag をカスタム投稿タイプでも利用可能にする
function addquicktag_set_custom_post_type($post_types){
    $post_types[] = "カスタム投稿タイプの名前";
    return $post_types;
}
add_filter('addquicktag_post_types', 'addquicktag_set_custom_post_type');

参考

AddQuicktag – エディタにHTML雛形を登録して記事作成を効率化できるWordPressプラグイン

【参考】プラグインで functions.php を管理する

WordPressプラグインを利用して functions.php を管理できる便利なプラグインを紹介します。

Code Snippets

Code Snippets

Code Snippetsは、WordPressテーマの関数を定義する functions.php のPHPコードを管理できるプラグインです。

通常の場合は、functions.php にPHPコードを直接記述しますが、それだとWordPressテーマをアップデートした際に、functions.php を上書きしてしまったり、記述するコードが増えてコードがゴチャゴチャになる可能性があります。

このプラグインを利用すると、上記の問題を解消し、尚且つ functions.php に記述するPHPコードを整理できます。自分用のメモ欄もあるので、何の役割のコードかを把握しやすくなります。そして、最初から記述してあったPHPコードと、自分が新たに追加したPHPコードを別々に分けて管理することができます。非常に便利なプラグインなので、あなたも活用しましょう。

参考

Code Snippets – functions.phpのPHPコードを管理できるWordPressプラグイン

まとめ

functions.php をカスタマイズすれば、WordPressテーマの機能や設定を自分好みに調整できます。上記にまとめたコードは、頻繁に利用するコードです。分類ごとに分けています。あなたのWordPressテーマの設定をカスタマイズする際に活用して下さい。

functions.php を管理する方法は、functions.php を直接編集しても良いですが、プラグインの「Code Snippets」を利用する方法もあります。WordPressテーマをアップデートした際に、functions.php が上書きされてしまったり、記述するコードが増えてコードがゴチャゴチャになることが無いので、効率的に運用できます。

スポンサーリンク