Simplicity2で関連記事を日付順で並べる

WordPressのテーマSimplicity2がお気に入りだ!
今さら気づいたことだけど、関連記事がランダム表示となってる

日付順でソートさせたいけど、カスタマイズに項目はない
調べた結果、ソースを修正する必要があるようだ

修正するソースは親テーマの”functions.php”
子テーマでの修正は不可能??

//WP_Queryの引数を取得
if ( !function_exists( 'get_related_wp_query_args' ) ):
function get_related_wp_query_args(){
  global $post;
  if ( is_related_entry_association_category() ) {
    //カテゴリ情報から関連記事をランダムに呼び出す

    --- 中略 ---

    return $args = array(
      'post__not_in' => array($post -> ID),
      'posts_per_page'=> intval(get_related_entry_count()),
      'category__in' => $category_IDs,
      'orderby' => 'rand',
    );
  } else {
    //タグ情報から関連記事をランダムに呼び出す

    --- 中略 ---

    return $args = array(
      'post__not_in' => array($post -> ID),
      'posts_per_page'=> intval(get_related_entry_count()),
      'tag__in' => $tag_IDs,
      'orderby' => 'rand',
    );
  }
}
endif;

これは修正前のソース(一部省略してる)

修正箇所はカテゴリおよびダグ情報から関連記事を取得するところ(2カ所)
2ヶ所とも修正内容は同じでランダム取得を日付取得に修正、日付のソート条件追加となる

具体的には
修正前:
‘orderby’ => ‘rand‘,

修正後:
‘orderby’ => ‘date‘,
‘order’ => ‘DESC’, // この行を追加

//WP_Queryの引数を取得
if ( !function_exists( 'get_related_wp_query_args' ) ):
function get_related_wp_query_args(){
  global $post;
  if ( is_related_entry_association_category() ) {
    //カテゴリ情報から関連記事をランダムに呼び出す

    --- 中略 ---

    return $args = array(
      'post__not_in' => array($post -> ID),
      'posts_per_page'=> intval(get_related_entry_count()),
      'category__in' => $category_IDs,
      'orderby' => 'date',      // 変更
      'order' => 'DESC',        // 追加
    );
  } else {
    //タグ情報から関連記事をランダムに呼び出す

    --- 中略 ---

    return $args = array(
      'post__not_in' => array($post -> ID),
      'posts_per_page'=> intval(get_related_entry_count()),
      'tag__in' => $tag_IDs,
      'orderby' => 'date',      // 変更
      'order' => 'DESC',        // 追加
    );
  }
}
endif;

修正したソースはこんな感じとなる

これで、関連記事の種類をカテゴリ・タグどちらを選んでも日付の新しい順で表示される
ちなみに日付の古い順でソートさせる場合は
‘order’ => ‘ASC‘,
とすればOK

コメント