Simplicity2の関連記事にウィジットを設置してみようと思う。
カスタマイズするのは、 functions.php とrelated-entries.php 。
Googleアドセンスのインフィールド広告などを張り付けるといいかな?
related-entries.phpを子テーマへコピー
related-entries.php はSimplicity2の親テーマの中にある。
Simplicity2がUpdateされると、カスタマイズも上書きされるので、子テーマの中にrelated-entries.php をコピーしておこう。
functions.phpもバックアップを取っておこう。
functions.phpへ書き足すコード
以下のコードを functions.phpに書き足す。
// ウィジェット領域の作成
register_sidebars( 1, array(
'name' => '関連記事の中間',
'id' => 'k-related-widget',
'description' => '関連記事の中間に表示されるウイジェット。',
'before_widget' => '',
'after_widget' => '',
'before_title' => '',
'after_title' => '',
));
register_sidebars( 1, array(
'name' => '関連記事の中間',
'id' => 'k-related-widget',
'description' => '関連記事の中間に表示されるウイジェット。',
'before_widget' => '',
'after_widget' => '',
'before_title' => '',
'after_title' => '',
));
[ 'name' => '関連記事の中間',]はウィジットのタイトル。
子テーマにコピーしたrelated-entries.phpのコードを書き換える
1.の中の以下の記述を探す。
<?php if( $query -> have_posts() && !empty($args) ): //関連記事があるとき?>
<?php while ($query -> have_posts()) : $query -> the_post(); ?>
<?php while ($query -> have_posts()) : $query -> the_post(); ?>
2.上の記述をしたのコードに書き換える。
<?php //関連記事の中にウィジットを設定
if( $query -> have_posts() && !empty( $args ) ) :
$count = 0;
while( $query -> have_posts() ) : $query -> the_post();
$count++;
if( $count == 3 && is_active_sidebar( 'k-related-widget' ) && !is_amp() ) {
echo '<div class="k-related">';
dynamic_sidebar( 'k-related-widget' );
echo '</div>';
}
?>
if( $query -> have_posts() && !empty( $args ) ) :
$count = 0;
while( $query -> have_posts() ) : $query -> the_post();
$count++;
if( $count == 3 && is_active_sidebar( 'k-related-widget' ) && !is_amp() ) {
echo '<div class="k-related">';
dynamic_sidebar( 'k-related-widget' );
echo '</div>';
}
?>
count == 3は関連記事の3番目という意味。
5なら5番目にウィジットが設定される。
functions.phpの ['id' => 'k-related-widget',]が['k-related-widget]に対応している。
[k-related]の[k]は任意のfunctions.phpとrelated-entries.phpで同じであれば任意の文字(半角英数字)でOK。
コメント