首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得自定义分类法项的术语(post_tag)?Wordpress

问如何获得自定义分类法项的术语(post_tag)?Wordpress
EN

Stack Overflow用户
提问于 2016-09-18 10:06:01
回答 1查看 1.5K关注 0票数 0

我创建了自定义post类型‘照片’和自定义分类法‘cat年间’。

类型的‘照片’支持‘猫照片’和'post_tag‘作为分类。

现在我应该为客户做一个过滤器。

我需要在taxonomy-catphoto.php页面上显示所有的post_tags,它们属于当前的“cat相册”项目。

例如,我有一个自定义的帖子类型‘照片’。这篇文章的名字是“飞机”。这篇文章属于“1961-1981”相册。此外,它还有诸如“空间”、“飞机”、“星星”、“战争”这样的帖子标签。

此外,例如,我有一个‘照片’的帖子,其中的名字是‘士兵’。它属于'1941-1961‘猫照片项目,有'WW2',’美国‘,’苏联‘一样的邮政标签。

现在,当我选择1941年-1961年,我应该得到一个列表: WW2,美国,苏联

我试着这样做:

代码语言:javascript
复制
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”?

EN

回答 1

Stack Overflow用户

发布于 2016-09-18 16:26:52

我已经通过$_GET查询解决了这个问题。这么简单..。首先,我决定创建自己的分类法类型(如post_tags)。它的名字是“标记”。

在那之后,片段是:

代码语言:javascript
复制
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,我填写:

代码语言:javascript
复制
$mark = $_GET['mark'];

在此之后,WP_Query查询中的一个小变化

代码语言:javascript
复制
$query = new WP_Query( array( 'post_type' => 'photo', 'posts_per_page'=>56, 'paged'=> $paged, 'catphoto' => $term->name, 'mark' =>$mark) );

向你问好,伊戈尔

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39556446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档