カスタム投稿タイプのアーカイブページとタームアーカイブページの一覧に親記事のみ表示させたいです
引用元 Toshi 2023年3月3日, 8:41 PM中いつもお世話になります。
やりたいことは表題の通りでして、いろいろと試しているもののうまくいきません。
URLとアップロードファイル(内容は同じです)
で以下にお知らせします。現状
表示 (最初の添付ファイル: parent-child.png)
https://gyazo.com/a7c9d2dc355f38e936d82dfdca7e4e35ダッシュボード - カスタムタクソノミーの「実績」カテゴリー(二番目の添付ファイル: achievement-cat.png)
https://gyazo.com/32187815ba691d1d6b9164947deea23bダッシュボード - カスタム投稿タイプ「実績」(三番目の添付ファイル: achievement-post.png)
https://gyazo.com/d4fee7b449f7eb37a552d7600c3796d9やりたいこと
タームアーカイブとカスタム投稿タイプのアーカイブページの一覧に親記事のみ表示させたいです。
上記の「表示」で言えば親記事のアイキャッチ画像のみが表示される状態で、カスタム投稿タイプのアーカイブページでは親投稿・子投稿がすべて表示されているのでそれを親投稿のみにしたいということがやりたいことです。試したこと
<?php function overwrite_archive_term($parts_content) { /** * タームアーカイブページ */ $term_obj = get_queried_object(); $term_id = $term_obj->term_id; //START 変数の定義 global $post; $taxonomy_name = $term_obj->taxonomy; $term = array_pop(get_the_terms($post->ID, $taxonomy_name)); $term_p = $term->parent; //END 変数の定義 $term_description = apply_filters('arkhe_term_description', $term_obj->description, $term_id); $show_description = apply_filters('arkhe_show_term_description', !empty($term_description), $term_id); // タイトル部分 if (!Arkhe::is_show_ttltop()) { Arkhe::get_part('archive/title'); // 説明文 if ($show_description) { echo '<div class="p-archive__desc">' . do_shortcode($term_description) . '</div>'; } } // 投稿リスト前フック do_action('arkhe_before_term_post_list', $term_id); //START: 投稿リストカスタム if (!$term_p == 0) { $term = array_pop(get_the_terms($post->ID, $taxonomy_name)); $term_id = $term->term_id; Arkhe::get_part('post_list/main_query', array( 'list_type' => apply_filters('arkhe_list_type_on_term', ARKHE_LIST_TYPE, $term_id), )); } //END: 投稿リストカスタム //投稿リスト デフォルト // Arkhe::get_part('post_list/main_query', array( // 'list_type' => apply_filters('arkhe_list_type_on_term', ARKHE_LIST_TYPE, $term_id), // )); // ページャー the_posts_pagination(array('mid_size' => 2)); return ''; } add_filter( 'arkhe_part__archive_term', 'overwrite_archive_term', 10 );
未熟なため、いくつかネットで調べた記事を参考に記載しているところもあるため、
「記述方法が間違っているよ」だったり「そもそも考え方が違うよ」などあると思いますが、ご教示いただければ幸いです。
また上記の試したことについてはタームアーカイブページで試してみました。
もしカスタム投稿タイプのアーカイブページで、別の記述が必要であればあわせてお知らせをお願いできればと思います。長くなりましがよろしくおねがいします。追伸: インラインで画像をアップロードさせようといろいろ試したもののうまく行かず、わかりにくい質問となり恐縮です。
いつもお世話になります。
やりたいことは表題の通りでして、いろいろと試しているもののうまくいきません。
URLとアップロードファイル(内容は同じです)
で以下にお知らせします。
現状
表示 (最初の添付ファイル: parent-child.png)
https://gyazo.com/a7c9d2dc355f38e936d82dfdca7e4e35
ダッシュボード - カスタムタクソノミーの「実績」カテゴリー(二番目の添付ファイル: achievement-cat.png)
https://gyazo.com/32187815ba691d1d6b9164947deea23b
ダッシュボード - カスタム投稿タイプ「実績」(三番目の添付ファイル: achievement-post.png)
https://gyazo.com/d4fee7b449f7eb37a552d7600c3796d9
やりたいこと
タームアーカイブとカスタム投稿タイプのアーカイブページの一覧に親記事のみ表示させたいです。
上記の「表示」で言えば親記事のアイキャッチ画像のみが表示される状態で、カスタム投稿タイプのアーカイブページでは親投稿・子投稿がすべて表示されているのでそれを親投稿のみにしたいということがやりたいことです。
試したこと
<?php
function overwrite_archive_term($parts_content)
{
/**
* タームアーカイブページ
*/
$term_obj = get_queried_object();
$term_id = $term_obj->term_id;
//START 変数の定義
global $post;
$taxonomy_name = $term_obj->taxonomy;
$term = array_pop(get_the_terms($post->ID, $taxonomy_name));
$term_p = $term->parent;
//END 変数の定義
$term_description = apply_filters('arkhe_term_description', $term_obj->description, $term_id);
$show_description = apply_filters('arkhe_show_term_description', !empty($term_description), $term_id);
// タイトル部分
if (!Arkhe::is_show_ttltop()) {
Arkhe::get_part('archive/title');
// 説明文
if ($show_description) {
echo '<div class="p-archive__desc">' . do_shortcode($term_description) . '</div>';
}
}
// 投稿リスト前フック
do_action('arkhe_before_term_post_list', $term_id);
//START: 投稿リストカスタム
if (!$term_p == 0) {
$term = array_pop(get_the_terms($post->ID, $taxonomy_name));
$term_id = $term->term_id;
Arkhe::get_part('post_list/main_query', array(
'list_type' => apply_filters('arkhe_list_type_on_term', ARKHE_LIST_TYPE, $term_id),
));
}
//END: 投稿リストカスタム
//投稿リスト デフォルト
// Arkhe::get_part('post_list/main_query', array(
// 'list_type' => apply_filters('arkhe_list_type_on_term', ARKHE_LIST_TYPE, $term_id),
// ));
// ページャー
the_posts_pagination(array('mid_size' => 2));
return '';
}
add_filter(
'arkhe_part__archive_term',
'overwrite_archive_term',
10
);
未熟なため、いくつかネットで調べた記事を参考に記載しているところもあるため、
「記述方法が間違っているよ」だったり「そもそも考え方が違うよ」などあると思いますが、ご教示いただければ幸いです。
また上記の試したことについてはタームアーカイブページで試してみました。
もしカスタム投稿タイプのアーカイブページで、別の記述が必要であればあわせてお知らせをお願いできればと思います。
追伸: インラインで画像をアップロードさせようといろいろ試したもののうまく行かず、わかりにくい質問となり恐縮です。