ワードプレス・カスタマイズ(個別ページ毎のサイトタイトル)

「サイトのタイトル」とそのタイトル下にある「キャッチフレーズ」を、ページ毎にカスタマイズする方法。 通常、サイトのタイトルとその下のキャッチフレーズは、ワードプレス管理画面で設定した内容が、すべての固定ページ、投稿ページなどで表示されます。 今回の記事では、それぞれの固定ページ毎に、違った内容を表示する一つの方法をご説明しています。

(投稿ページでもこのような設定は可能ですが、修正するテンプレートファイルが多くなるので、今回の記事は、固定ページのみのの変更としました。)

MENU
  • カスタマイズ前後の一例
  • 固定ページの設定
  • 修正するテンプレートファイルと修正ポイント
  • ご注意事項

カスタマイズ前後の一例

下の画像は、「サイトのタイトル」と「キャッチフレーズ」が変更前と変更後です。
カスタム・サイト・タイトル 設定前
カスタム・サイト・タイトル 設定前
カスタム・サイト・タイトル 設定後
カスタム・サイト・タイトル 設定後

固定ページの設定

カスタマイズしたい固定ページのカスタムフィールドで、タイトルとキャッチフレーズを作成します。
カスタムフィールド名前
カスタムフィールド値例
custom-site-title
カスタム・サイト・タイトル
custom-site-description
このページだけのサイトの説明です。

修正するテンプレートファイルと修正ポイント

固定ページテンプレートのみを若干修正します。
  • wp-content
    • themes
      • twentyseventeen-child
        • page.php
page.php の get_header 前に、下の構文を挿入。 カスタムフィールドからタイトルとキャッチフレーズを取得し、bloginfo 関数へのフィルターフックで、値を修正しています。
$custom_site_title = get_post_meta($post->ID, 'custom-site-title', true);
$custom_site_description = get_post_meta($post->ID, 'custom-site-description', true);

if ( ! $custom_site_title == "" && ! $custom_site_description == "" ) {
  add_filter( 'bloginfo', 'my_bloginfo',1,2);
  function my_bloginfo($result='', $show='') {
    global $custom_site_title;
    global $custom_site_description;
		
    switch ( $show ) {
      case 'name':
        $result = $custom_site_title;
        break;
      case 'description':
        $result = $custom_site_description;
        break;
      default: 
    }
    return $result;
  }
}
get_header();
ちなみに、フィルターフックする bloginfo 関数は、/wp-includes/general-template.php 内です。。

ご注意事項

  • 当サイトでは、不具合なく動作していますが、他の条件下では、正しく動作しない可能性もありますので、ご自身の責任においてご利用ください。
  • 不具合、記載内容間違い、もしくは、ご質問等は、お気軽にご連絡ください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です