我创建了自定义post类型‘照片’和自定义分类法‘cat年间’。
类型的‘照片’支持‘猫照片’和'post_tag‘作为分类。
现在我应该为客户做一个过滤器。
我需要在taxonomy-catphoto.php页面上显示所有的post_tags,它们属于当前的“cat相册”项目。
例如,我有一个自定义的帖子类型‘照片’。这篇文章的名字是“飞机”。这篇文章属于“1961-1981”相册。此外,它还有诸如“空间”、“飞机”、“星星”、“战争”这样的帖子标签。
此外,例如,我有一个‘照片’的帖子,其中的名字是‘士兵’。它属于'1941-1961‘猫照片项目,有'WW2',’美国‘,’苏联‘一样的邮政标签。
现在,当我选择1941年-1961年,我应该得到一个列表: WW2,美国,苏联
我试着这样做:
if (substr($_SERVER['REQUEST_URI'],1,8) == 'catphoto'){
$cur_terms = get_terms('post_tag');
if ($cur_terms) {
foreach( $cur_terms as $cur_term ){
echo $cur_term->name.'<br/>';
}
}
}现在我得到了所有照片的贴图标签。我怎样才能固定限制明确的相册项目。例如,“1941-1961”?
发布于 2016-09-18 16:26:52
我已经通过$_GET查询解决了这个问题。这么简单..。首先,我决定创建自己的分类法类型(如post_tags)。它的名字是“标记”。
在那之后,片段是:
if (substr($_SERVER['REQUEST_URI'],1,8) == 'catphoto'){
$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
$query = new WP_Query( array('post_type' => 'photo', 'catphoto' => $term->name));
echo '<ul>';
$uniqueTerms = array();
$uniqueSlugs = array();
$uniquePar = $term->slug;
while ( $query->have_posts() ) {
$query->the_post();
$terms = wp_get_post_terms(get_the_ID(), 'mark', array("fields" => "all"));
foreach ($terms as $term1)
{
if(!in_array($term1->name, $uniqueTerms)) {
$uniqueTerms[] = $term1->name;
$uniqueSlugs[] = $term1->slug;
}
}
}
for ($var = 0; $var < count($uniqueTerms); $var++)
echo '<li><a href="'.esc_url( home_url( '/catphoto/' ) ).$uniquePar.'/?mark='.$uniqueSlugs[$var].'">'.$uniqueTerms[$var].'</a></li>';
echo '</ul>';
}到处都是丑陋的代码,但它起作用了。
现在,在taxonomy-catphoto.php,我填写:
$mark = $_GET['mark'];在此之后,WP_Query查询中的一个小变化
$query = new WP_Query( array( 'post_type' => 'photo', 'posts_per_page'=>56, 'paged'=> $paged, 'catphoto' => $term->name, 'mark' =>$mark) );向你问好,伊戈尔
https://stackoverflow.com/questions/39556446
复制相似问题