Blog

【WordPress】カスタム投稿一覧で「新しい順」「古い順」で並び替え

2020/09/16

カスタム投稿

備忘録です。

カスタム投稿一覧で記事の順番を「新しい順」「古い順」で並び替えをする方法です。

[簡易方法]

カスタム投稿一覧のテンプレートに記述

<a href="?order=asc">古い順に表示</a>
<a href="?order=desc">新しい順に表示</a>

アンカーリンクを付けたい場合

functions.phpに記述

//記事ソート
function custom_post_order_query( $query ) {
    if ( !is_admin() && $query->is_main_query() && is_post_type_archive( 'my_custom_post' ) ) {
        // クエリパラメータ "order" が存在するかチェック
        if ( isset( $_GET['order'] ) && $_GET['order'] == 'ASC' ) {
            // 古い順
            $query->set( 'order', 'ASC' );
        } else {
            // デフォルトは新しい順
            $query->set( 'order', 'DESC' );
        }
    }
}
add_action( 'pre_get_posts', 'custom_post_order_query' );

テンプレートに記述(アンカーリンクはlist)

<?php
// 新しい順へのリンク
$new_order_link = add_query_arg( 'order', 'DESC' );

// 古い順へのリンク
$old_order_link = add_query_arg( 'order', 'ASC' );
?>

<!-- ソートボタンを任意の位置に設置 -->
<a href="<?php echo esc_url( $new_order_link ); ?>#list">新しい順</a>
<a href="<?php echo esc_url( $old_order_link ); ?>#list">古い順</a>

ゼヒトモ内でのプロフィール: ROCKSTREAMゼヒトモのホームページ作成・制作サービス仕事をお願いしたい依頼者と様々な「プロ」をつなぐサービス

カテゴリー

月間アーカイブ

MORE

ミュージシャンズ・プラザ

神社仏閣ホームーページ制作

ホームページ制作問合せ