About

小樽で3年と少し経験を積み、現在は札幌でコーダーをしております。

赤い電動車いすに乗って生活をしています。色々と不便はありますが、行列待ち等の椅子がない状況では、真価を発揮します。

好き:食べる/スロープ/エレベーター
嫌い:食事制限/段差/階段
※スロープやエレベーターに関しては、もはや好きという感情では収まり切れません。

気づけばグルメブログになってしまわぬよう、しっかり更新頑張ります!

Links

【WordPress】get_custom_logo()を用いて、新たなロゴ出力関数を定義してみた

get_custom_logo()を用いて、新たな関数を定義してみた

WordPressのバージョン4.5.0より、カスタマイズ機能(つまり管理画面)からサイトのロゴが設定できるようになりました。当ブログのWordPressを例にすると、以下のようになっておりますね。

カスタマイズ機能のロゴ設定画面

この設定されたロゴを取得するテンプレートタグはget_custom_logo()となり、
<a href="サイトURL" class="custom-logo-link" rel="home" itemprop="url">imgタグ</a>といった感じで、HTMLタグが返されます。

今回はこのテンプレートタグを元に、以下のような機能を持つ関数を新たに定義してみたいと思います。

  • カスタムロゴが設定されていない場合、テキストリンクを出力
  • トップページの場合はh1、それ以外の場合はdivで囲う(1ページにh1を一つにしたい想定)

ということで、早速コードですが、以下をfunctions.phpに貼り付けます。

function original_the_custom_logo(){
  $logo = $tag = NULL;
  // ロゴが設定されている場合
  if( has_custom_logo() ){
    // リンク付きロゴ画像を出力
    $logo = get_custom_logo();
  }
  // ロゴが設定されていない場合
  else{
    // リンク付きテキストで出力
    $logo = '<a href="'.home_url().'">'.get_bloginfo( 'name' ).'</a>';
  }
  // トップページの場合
  if( is_home() ){
    $tag = 'h1';
  }
  // トップページ以外の場合
  else{
    $tag = 'div';
  }
  echo '<'.$tag.' class="logo">'.$logo.'</'.$tag.'>';
}

所々に記述のあるコメント通りですが、簡単に解説します!

if( has_custom_logo() )この記述により、カスタムロゴが設定されているか判断させています。
if( is_home() )この記述により、トップページかどうか判断させていますね。

後は、ロゴを表示させたい場所(header.php等)に<?php original_the_custom_logo(); ?>と記述するだけです!

ちょっとした小ネタではありましたが、汎用性のあるものは独自関数化することにより、見通しの良いテーマとなりそうですね。

コメントする

トップへ戻る