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
