SimplicityでTOP以外サイドバーも人気エントリーを表示する(WordPressテーマカスタマイズ)
WordPressテーマ「Simplicity」のサイドバーに「新着エントリー+最近の投稿」で同じ記事が出てしまうのが気になって、「人気エントリー+最近の投稿」に変更しました。
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