さまざまなカスタムフィールドを持つ4つのカスタム投稿タイプ(ビデオ、オーディオ、プログラム、ブログ)を作成しました。投稿タイプに応じて特定のカスタムフィールドを表示するカスタムアーカイブページを作成できました。アーカイブページは、特定のカスタム投稿タイプのアーカイブのみを表示しているときにうまく機能しています。私が抱えている問題は、カテゴリのアーカイブページです。Wordpress:カテゴリアーカイブページにカスタム投稿タイプUI(CPT UI)で作成したカスタム投稿タイプを含めるにはどうすればよいですか?
各カスタム投稿タイプはグローバル '投稿'カテゴリにアクセスできるため、すべてのカテゴリが各投稿タイプに表示されます。投稿の種類に関係なく、カテゴリを照会して関連付けられた投稿を表示できるようにしたいと考えています。すなわち、「ビジネス」カテゴリは、2つのビデオ、音声投稿、およびブログをプルアップすることができる。問題は、私のカテゴリページが今空であることです。ここで
は 'archive.php' で私の現在のループです:
これは、アーカイブコンテンツのコンテンツ-archive.php」のテンプレートをつかむ:
<?php
/**
* Get featured posts from Archives
*/
if(is_post_type_archive('videos')) {
$video_image = get_field('video_still_image');
print_archive_post($video_image);
} elseif(is_post_type_archive('programs')) {
$program_featured_image = get_field('program_featured_image');
print_archive_post($program_featured_image);
} elseif(is_post_type_archive('audio')) {
$audio_featured_image = get_field('audio_featured_image');
print_archive_post($audio_featured_image);
} elseif(is_post_type_archive('blogs')) {
$blog_featured_image = get_field('blog_featured_image');
print_archive_post($blog_featured_image);
}
?>
そして、ここに私は、機能を 'functions.php'から投稿用のコンテンツを作成するには:
// Function to print archive type posts
function print_archive_post($image) {
echo '<div class="col-md-4 featured-thumb-container">';
echo '<a href="' . get_the_permalink() . '"><span class="featured-thumb" style="background: url(' . $image . ')"></span></a>';
echo '<h3><a href="' . get_the_permalink() . '">' . get_the_title() . '</a></h3>';
// The category list
$post_cats= array();
$categories = get_the_category();
echo '<p class="category-list">';
foreach($categories as $cat) :
echo '<a class="category-link" href="' . get_home_url() . '/category/' . $cat->slug . '">' . $cat->cat_name . '</a><span>,</span> ';
endforeach;
echo '</p>';
echo '</div>';
}
私はケイト私は研究で解決策を見つけることができませんでした。どんな助けでも大歓迎です。 :)
ポストタイプごとにカスタムタクソノミーを作成してみませんか? – ucheng
@uchengご返信ありがとうございます!異なるタクソノミを作成する際の私の問題は、冗長性です。この場合、4つの「ビジネス」カテゴリがあります。それぞれのポストタイプに1つのカテゴリがあります。 1つのカテゴリに関連するすべてのカスタム投稿タイプを取得する方法はありますか? –
私はそれを正しく理解しているかどうかわからない、回答を追加します。そうでない場合は、私に知らせてください。私は答えを更新します。 – ucheng