Stinger7:関連記事をカテゴリーベースからタグベースに変更する方法

  • Google+
  • B!はてブ
  • Pocket
  • 今回の記事では、無料WordPressテーマ:Stinger7の関連記事をカスタマイズする方法を紹介したいと思います。

    カスタマイズ前の状態では同じカテゴリーの記事を5件関連記事として表示するようになっていますが、これをカテゴリーではなくタグから5件表示するように変更します。関連記事の表示件数についてはこの前書いたページがあるので、よかったら参考にして下さい。

    Stinger7:関連記事の表示件数を変更する方法

    カスタマイズ前

    ↓ 同じカテゴリの記事を関連記事として表示

    stinger7-related-posts-num-before-1

    カスタマイズ後

    ↓ 同じタグの記事を関連記事として表示

    stinger7-related-posts-tag-after-1

    ※ 今回はPHPファイルを編集していきます。管理画面に入れなくなることもあるので、PHPコードは注意して編集して下さい。

    1. kanren-thumbnai-on.php を編集

    関連記事は kanren-thumbnai-on.phpkanren-thumbnail-off.php に書かれているので、関連記事の表示件数を変更する方法と同じように、...on.php...off.php の両方のファイルを編集していきます。

    ※ もし子テーマ内に kanren-thumbnai-on.phpkanren-thumbnail-off.php ファイルを作っていなければ、親テーマ(Stinger7本体)からコードを丸ごとコピペして、これらのファイルを作って下さい。

    kanren-thumbnai-on.php の1行目から14行目に以下のコードがあるので

    <div class="kanren <?php st_marugazou_class(); //サムネイルを丸くする ?>">
        <?php
        $categories = get_the_category( $post->ID );
        $category_ID = array();
        foreach ( $categories as $category ):
            array_push( $category_ID, $category->cat_ID );
        endforeach;
        $args = array(
            'post__not_in' => array( $post->ID ),
            'posts_per_page' => 5,
            'category__in' => $category_ID,
            'orderby' => 'rand',
        );
        $st_query = new WP_Query( $args ); ?>
    

    これを下のコードで置き換えます。

    <div class="kanren <?php st_marugazou_class(); //サムネイルを丸くする ?>">
        <?php
        $tags = get_the_tags( $post->ID );
        $tag_ID = array();
        foreach ( $tags as $tags ):
            array_push( $tag_ID, $tag->term_id );
        endforeach;
        $args = array(
            'post__not_in' => array( $post->ID ),
            'posts_per_page' => 5,
            'tag__in' => $tag_ID,
            'orderby' => 'rand',
        );
        $st_query = new WP_Query( $args ); ?>
    

    2. kanren-thumbnail-off.php を編集

    kanren-thumbnail-off.php についても、...-on.php と同じように編集していきます。

    ...-off.php の1行目から14行目に以下のコードがあるので

    <div class="kanren">
        <?php
        $categories = get_the_category( $post->ID );
        $category_ID = array();
        foreach ( $categories as $category ):
            array_push( $category_ID, $category->cat_ID );
        endforeach;
        $args = array(
            'post__not_in' => array( $post->ID ),
            'posts_per_page' => 5,
            'category__in' => $category_ID,
            'orderby' => 'rand',
        );
        $st_query = new WP_Query( $args ); ?>
    

    これを下のコードで置き換えます。

    <div class="kanren">
        <?php
        $tags = get_the_tags( $post->ID );
        $tag_ID = array();
        foreach ( $tags as $tags ):
            array_push( $tag_ID, $tag->term_id );
        endforeach;
        $args = array(
            'post__not_in' => array( $post->ID ),
            'posts_per_page' => 5,
            'tag__in' => $tag_ID,
            'orderby' => 'rand',
        );
        $st_query = new WP_Query( $args ); ?>
    

    違いが分かりにくいかもしれませんけど、ファイルを保存しページを更新すると、カテゴリーベースだった関連記事がタグベースに変わりました。今回はこれで完成です。

    stinger7-related-posts-tag-after-1

    Stinger7:関連記事の表示件数を変更する方法