サポート » 使い方全般 » 先頭に固定表示させる方法

  • 解決済 ioxrxogi

    (@ioxrxogi)


    カテゴリAの投稿記事「01」があったとして、

    カテゴリAの記事一覧(アーカイブ)表示する時にだけ、
    投稿記事「01」を先頭に表示するにはどうすればいいでしょうか。

    表示する方法があれば教えてください。
    よろしくお願いします。

    • このトピックは2年、 8ヶ月前にioxrxogiが編集しました。理由: 修正
3件の返信を表示中 - 1 - 3件目 (全3件中)
  • LABE

    (@latobeam)

    カテゴリAのアーカイブページに対して pre_get_posts で「01」を除外し、カテゴリAを表示するテーマファイルを作り、その投稿一覧を表示する箇所の先頭に「01」を単独で表示させる。

    という方法を思いつきました。

    こんにちは

    ORDER BY に CASE 式を指定する方法はどうでしょうか。

    function my_posts_orderby( $orderby, $query ) {
    	if ( !is_admin() && $query->is_main_query() ) {
    		// 111 はカテゴリAの ID
    		if (  $query->query_vars['cat'] == 111 ) {
    			global $wpdb;
    			// 222 は投稿記事「01」の ID
    		//	$orderby = "CASE {$wpdb->posts}.ID WHEN 222 THEN 1 ELSE 2 END,{$wpdb->posts}.post_date DESC";
    			$orderby = "CASE {$wpdb->posts}.ID WHEN 222 THEN 1 ELSE 2 END," . $orderby;
    		}
    	}
    	return $orderby;
    }
    add_filter( 'posts_orderby', 'my_posts_orderby', 10, 2 );

    LABEさん、ありがとうございます。

    ishitakaさん、ありがとうございます。
    思ったように動作させることができました。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「先頭に固定表示させる方法」には新たに返信することはできません。