我的WP中有以下CPT和分类法:
CPT: magazine
<分层:真存档:真
Custom Taxonomy: authorname (杂志作者。与WP作者不同)
附于:CPT杂志Custom Taxonomy: magazinename (杂志名称)
附于:CPT杂志
URL structure:
- hxxp://domain.zzz/magazine/author-name/magazine-name/magazine-page
How do I do the following:
<如果我去hxxp://domain.zzz/magazine/author-name/仅列出该作者的父页?(需要显示该页面的特色图片)
如果我去hxxp://domain.zzz/magazine/author-name/magazine-name/只显示第一个页面,以及其他页面的列表(导航)和属于这两个分类法的当前页面?
如果我去hxxp://domain.zzz/magazine/author-name/magazine-name/magazine-page/只有该页面显示了属于这两种分类法的其他页面的列表?
什么。我需要在主题文件夹中创建php文件吗?这些文件中的查询是什么样子的?
提前感谢您的回答。
韩国,
安迪
编辑:
我有以下代码single-magazine.php:
<?php get_header(); ?>
<?php
$query = new WP_Query( array( \'post_type\' => \'magazine\') );
while ( have_posts() ) : the_post(); ?>
<div class="entry magazine">
<?php the_content(); ?>
</div>
<?php endwhile; // end of the loop. ?>
<div class="navigation">
<p>nav single-magazine.php</p>
</div>
<?php get_footer(); ?>
最合适的回答,由SO网友:andyderuyter 整理而成
好吧,似乎使用不止一种分类法只是一厢情愿的想法。
我解决了这个问题:
CPT仍然是“杂志”
使用了分层分类术语:
家长:作者姓名儿童:每位作者将出版的杂志。
使用下面的代码,我成功地获得了一个有效的分类法authorname。php页面:
<?php
$taxonomies = array(
\'authormagazine\' // the custom tax
);
$args = array(
\'orderby\' => \'id\',
\'order\' => \'ASC\',
\'hide_empty\' => true,
\'fields\' => \'all\',
\'slug\' => \'andy\' // the slug of the author name parent term
);
$terms = get_terms($taxonomies, $args);
$term_id = $terms[0]->term_id;
$taxonomy_name = \'authormagazine\';
$termchildren = get_term_children( $term_id, $taxonomy_name );
foreach ( array_reverse($termchildren) as $child ) {
echo \'<div class="row">\';
$term = get_term_by( \'id\', $child, $taxonomy_name );
// Here we get the permalink of the first post from each magazine
$args2 = array(
\'post_type\' => \'magazine\',
\'tax_query\' => array(
array(
\'taxonomy\' => \'authormagazine\',
\'field\' => \'slug\',
\'terms\' => $term->slug
),
\'posts_per_page\' => 1
),
);
$query = new WP_Query($args2);
$firstpost_link = $query->posts[0]->ID;
echo \'<div class="col-md-6 mag-title">\';
echo \'<h2><a href="\' . get_permalink( $firstpost_link ) . \'">\' . $term->name . \'</a></h2>\';
echo \'</div>\';
echo \'</div>\'; // end row
}
?>