複数カスタム投稿タイプを一つの年別アーカイブページとして、非公開ページを含めて非ログインユーザーに表示したい
-
今、クライアントからの依頼で、イベント情報ページを作っています。
クライアントが開催するイベントを掲載するページとなります。- Home
- Event(スケジュール)
- 自社運営イベント
- 出店系イベント
- Goods
- Biography
- About
- Contact
というサイトマップになります。
ほぼカスタム投稿タイプで作っています。■Eventページ
Eventが終了し次第、Post Expiratorで非公開にする。
また、「自社運営イベント」と「出店系イベント」で、表示する内容が多少変わるため、
レイアウトなども変わってきます。■やりたいこと
イベント情報に関することを時系列で残したいため、Biographyというアーカイブページを作成。
Biographyの詳細ページ(singleページ)は不要- 「Event(非公開分)」と「Goods」をBiographyの年別アーカイブに強制的に表示
- Biographyは「Event」と「Goods」以外にも掲載したいものがある場合のために、Biographyからも編集を行う場合があります。実質的には「Event」「Goods」「Biography」の一覧表示となる
- Eventは非公開分を表示したい
■実現できたところ
BiographyにBiographyの年別アーカイブページに「Event」「Goods」を強制的に一覧にすることは実現できています。
参照ページ:https://teratail.com/questions/67797archive.phpに記入する
'type' => 'monthly',
を
'type' => 'yearly',
にして実現■実現できず困っていること
Biographyは実績一覧みたいなものなので、
Eventページでは非表示の状態でBiographyに表示させたいと考えています。Post Expiratorのカテゴリ移動も別の場所で、提案いただいたのですが、
更新者が技術的な面で怪しいため、あまり手数を増やしたくないです。なので、BiographyでEventのみ非公開情報を非ログインユーザーに表示させたいです。
で、コードとしては、pre_get_postsを使用して、function.phpに
function myaction_archive_sortorder( $wp_query ) { if( is_admin() ){ return $wp_query; } if( $wp_query->is_main_query() && $wp_query->is_archive() ){ $wp_query->set( 'posts_per_page',-1 ); $wp_query->set( 'meta_key', 'first_date' ); $wp_query->set( 'orderby', 'meta_value' ); $wp_query->set( 'order', 'ASC' ); $wp_query->set( 'post_status', array('private','publish') ); } return $wp_query; } add_action( 'pre_get_posts', 'myaction_archive_sortorder' );
と書きました。非公開記事を含めて表示はできているのですが、
昇順での1件目しか表示されず困っています。何か方法があれば教えてください。
よろしくお願いします。
- トピック「複数カスタム投稿タイプを一つの年別アーカイブページとして、非公開ページを含めて非ログインユーザーに表示したい」には新たに返信することはできません。