【WordPress】functions.phpに書いておきたいコード

今回はWordPressのテーマをカスタマイズしたり、オリジナルテーマを制作するときに「functions.php」に書いておきたいコードをいくつかまとめていきたいと思います。

目次

  1. WordPressのバーションを消す
  2. titleを自動生成する
  3. RSSを自動生成する
  4. アイキャッチ画像を使えるようにする
  5. 「続きを読む」リンク-more-のハッシュを消す
  6. カスタムメニューを使えるようにする
  7. ウィジェットを使えるようにする
  8. サイト検索結果から固定ページを除外する

1. WordPressのバーションを消す

WordPressで制作したWebサイトは<head>></head>内に<meta>タグが追加され、以下の様にバージョンが表示されてしまいます。

&amp;lt;meta name="generator" content="WordPress 4.4.1" /&amp;gt;

WordPressのバーションをそのまま表示させておくのはセキュリティ上よろしくないので、下記を「functions.php」に記述し、バージョンは消してしまいます。

remove_action('wp_head','wp_generator');

2. titleを自動生成する

従来は「header.php」内に下記を記述してタイトルを表示させていましたが

header.php

&amp;lt;title&amp;gt;&amp;lt;?php wp_title('|'); ?&amp;gt;&amp;lt;/title&amp;gt;

WordPress4.1からは「functions.php」に以下を記述することでタイトルを表示してくれるようになりました。

functions.php

add_theme_support('title-tag');

WordPress Codex

3. RSSを自動生成する

functions.php

add_theme_support('automatic-feed-links');

上記を記述すると、投稿とコメントのRSSフィードのリンクが有効になり、下記のように出力されます。

index.html

&amp;lt;link rel="alternate" type="application/rss+xml" title="uquico &amp;amp;raquo; フィード" href="http://uquico.com/feed/" /&amp;gt;
&amp;lt;link rel="alternate" type="application/rss+xml" title="uquico &amp;amp;raquo; コメントフィード" href="http://uquico.com/comments/feed/" /&amp;gt;

4. アイキャッチ画像を使えるようにする

このコードを記述しておかないと、記事の投稿画面でアイキャッチ画像の設定項目が表示されず使えません。

functions.php

add_theme_support('post-thumbnails');

設定したアイキャッチ画像を出力するには、任意の場所に以下のコードを記述するだけなので簡単です。

single.php

&amp;lt;?php the_post_thumbnail(); ?&amp;gt;

4-1. 画像のサイズを指定する

さらに、アイキャッチ画像のサイズについて補足しておきます。アイキャッチ画像はアップロードした画像のサイズがそのまま反映されるので、画像を設定する段階でサイズをリサイズさせたい場合は「functions.php」に以下を追加してあげる必要があります。

functions.php

set_post_thumbnail_size(640, 330, true);

この場合だと設定した画像を横幅640px、縦幅330pxのサイズで切り抜いて(トリミング)くれます。trueではなくfalseにした場合、または省略した場合は切り抜きモードはOFFになります。

4-2. その他のサイズ指定方法

single.php

&amp;lt;?php the_post_thumbnail(arrya(200, 200)); ?&amp;gt;

画像を出力させたい場所でこのように記述すると、元の画像の縦横比は継承されたまま縦横どちらか長い方を200pxにしてリサイズしてくれます。

また、管理画面の設定→メディアで設定しているサイズを利用してアイキャッチ画像を表示させたい場合は、以下のように記述します。

single.php

&amp;lt;?php the_post_thumbnail('thumbnail'); ?&amp;gt; // サムネイル (デフォルト 150px x 150px :最大値)
&amp;lt;?php the_post_thumbnail('medium'); ?&amp;gt; // 中サイズ (デフォルト 300px x 300px :最大値)
&amp;lt;?php the_post_thumbnail('large'); ?&amp;gt; // 大サイズ (デフォルト 640px x 640px :最大値)
&amp;lt;?php the_post_thumbnail('full'); ?&amp;gt; // フルサイズ (アップロードした画像の元サイズ)

WordPress Codex

5. 「続きを読む」リンク-more-のハッシュを消す

記事詳細へと移動する<!-- more -->タグですが、そのままだとURLにハッシュがついてしまうのでそれを消したいな〜という場合は以下を記述します。

functions.php

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');

6. カスタムメニューを使えるようにする

以下のコードを追加することで管理画面→外観→メニューからカスタムメニューを使用できるようになります。

functions.php

register_nav_menu(array('header-nav'=&amp;gt;'ヘッダーナビ'));

カスタムメニューを複数使用したい場合はregister_nav_menus(); を使えば複数作成できます。

7. ウィジェットを使えるようにする

サイドバーに使用したウィジェットエリア(外観→ウィジェット)も「functions.php」に記述しないと使えるようにはなりません。なので以下を追加してウィジェットを使えるようにします。

functions.php

if ( function_exists ('register_sidebar'))
register_sidebar(array (
'name' =&amp;gt; 'サイドバーウィジェット',
'id' =&amp;gt; 'sidebar',
'description' =&amp;gt; '',
'before_widget' =&amp;gt; '&amp;lt;div id="widget"&amp;gt;',
'after_widget' =&amp;gt; '&amp;lt;/div&amp;gt;',
'before_title' =&amp;gt; '&amp;lt;h2&amp;gt;',
'after_title' =&amp;gt; '&amp;lt;/h2&amp;gt;'
 ));

表示させるためには、任意の場所「sidebar.php」に以下のコードを記述します。

sidebar.php

&amp;lt;?php dynamic_sidebar ('sidebar'): ?&amp;gt;

8. サイト検索結果から固定ページを除外する

サイト内の検索結果から固定ページを除外して、投稿ページのみを表示させる方法です。

functions.php

function SearchFilter($query) {
  if ( !is_admin() &amp;amp;&amp;amp; $query-&amp;gt;is_main_query() ) {
    if ($query-&amp;gt;is_search) {
      $query-&amp;gt;set('post_type', 'post');
    }
  }
}
add_action('pre_get_posts','SearchFilter');

これで、検索結果から固定ベージが除外されます。


functions.phpを活用すれば他にもまだまだ便利な機能を追加、設定できると思います。参考になりそうなものがありましたら、是非試してみてください。

Leave a Comment