SimplicityでTOP以外サイドバーも人気エントリーを表示する(WordPressテーマカスタマイズ)

この記事をシェアする

WordPressテーマ「Simplicity」のサイドバーに「新着エントリー+最近の投稿」で同じ記事が出てしまうのが気になって、「人気エントリー+最近の投稿」に変更しました。

SimplicityのサイドバーにTOP以外も人気エントリー

スポンサーリンク

Simplicity新着・人気エントリー

WordPressテーマ「Simplicity」でサイドバーに表示される「Simplicity新着・人気エントリー」ウィジェットは、

  • TOPページ:人気エントリー
  • TOPページ以外:新着エントリー

が表示されます。

「最近の投稿」ウィジェットを使えば新着エントリーは表示できるので、「Simplicity新着・人気エントリー」をTOPページ以外でも人気エントリーを表示するようにします。

  • TOPページ:人気エントリー
  • TOPページ以外:人気エントリー

これが表示されるようになります。

Simplicity: テーマのための関数 (functions.php)

外観→テーマの編集からSimplicityを選択し、functions.phpを選択します。Simplicity: テーマのための関数 (functions.php)を修正画面になります。

functions.phpから下記のコードを探して下さい(下の方です)。

function widget($args, $instance) {
    extract( $args );
    $title_new = apply_filters( 'widget_title_new', $instance['title_new'] );
    $title_popular = apply_filters( 'widget_title_popular', $instance['title_popular'] );
    ?>
      <?php if (is_home()) { //メインページの場合?>
        <div id="popular-entries" class="widget widget_new_popular">
          <h4><?php if ($title_popular) {
            echo $title_popular;
          } else {
            echo '人気エントリー';
          }
            ?></h4>
        <?php if (function_exists('wpp_get_mostpopular') && //Wordpress Popular Postsがインストールされているかどうか
                  is_wpp_enable()) { //Wordpress Popular Postsを?>
          <?php get_template_part('popular-posts-entries'); //PV順?>
        <?php } else { //Wordpress Popular Postsがインストールされていない?>
          <?php get_template_part('popular-entries'); //コメント順?>
        <?php } ?>
        </div>
      <?php } else { //メインページ以外?>
            <div id="new-entries" class="widget widget_new_popular">
              <h4><?php if ($title_new) {
                echo $title_new;
              } else {
                echo '新着エントリー';
              }
                ?></h4>
              <?php get_template_part('new-entries'); ?>
            </div><!-- /#new-entries -->
      <?php } ?>
    <?php
}

これを下記のように変更します。

function widget($args, $instance) {
    extract( $args );
    $title_new = apply_filters( 'widget_title_new', $instance['title_new'] );
    $title_popular = apply_filters( 'widget_title_popular', $instance['title_popular'] );
    ?>
      <?php if (is_home()) { //メインページの場合?>
        <div id="popular-entries" class="widget widget_new_popular">
          <h4><?php if ($title_popular) {
            echo $title_popular;
          } else {
            echo '人気エントリー';
          }
            ?></h4>
        <?php if (function_exists('wpp_get_mostpopular') && //Wordpress Popular Postsがインストールされているかどうか
                  is_wpp_enable()) { //Wordpress Popular Postsを?>
          <?php get_template_part('popular-posts-entries'); //PV順?>
        <?php } else { //Wordpress Popular Postsがインストールされていない?>
          <?php get_template_part('popular-entries'); //コメント順?>
        <?php } ?>
        </div>
      <?php } else { //メインページ以外?>
        <div id="popular-entries" class="widget widget_new_popular">
          <h4><?php if ($title_popular) {
            echo $title_popular;
          } else {
            echo '人気エントリー';
          }
            ?></h4>
        <?php if (function_exists('wpp_get_mostpopular') && //Wordpress Popular Postsがインストールされているかどうか
                  is_wpp_enable()) { //Wordpress Popular Postsを?>
          <?php get_template_part('popular-posts-entries'); //PV順?>
        <?php } else { //Wordpress Popular Postsがインストールされていない?>
          <?php get_template_part('popular-entries'); //コメント順?>
        <?php } ?>
        </div><!-- /#new-entries -->
      <?php } ?>
    <?php
}

TOPページもTOPページ以外も、同じ人気エントリーを表示するコードに変更しただけです。if(is_home()){ }else{ }の分岐を残してあるのは、後々なにか修正するかもしれないので。

ファイルを更新すると、TOPページ以外でも人気エントリーが表示されます。

※functions.phpの修正をミスするとページが真っ白になるので、必ずバックアップを取って、いつでも元のfunctions.phpをFTPで上書きして戻せるようにして下さい。

※子テーマのfunctions.phpで対応する方法がよく分かりませんでした。
【WordPress】 子テーマを使ったカスタマイズについて(functions.php編)

photo credit: chris zerbes via photopin cc

この記事をシェアする

スポンサーリンク