是否显示仅限于自定义帖子类型的自定义分类?

时间:2011-03-31 作者:CRIS

我遇到了一个愚蠢的情况,不知何故我找不到解决办法,真的需要一些帮助!

所以我正在做一个项目,除了帖子和页面之外,我还有两种自定义的帖子类型:照片和事件。

我创建了一个名为“标记”的自定义分类法。此分类法适用于帖子、页面、照片和事件。。。因此,基本上你可以给每件事都添加一个标签,你可以从其他地方使用的标签中选择任何地方(例如:如果你在活动中添加了一些标签,那么你以后可以在照片中选择相同的标签)。

理想的做法是到处展示相关的东西。因此,如果您正在参加活动,您将在侧边栏中看到相关的新闻、照片,甚至页面条目。。。等等

现在,我只想在照片部分显示标签,这些标签已经在自定义帖子类型的照片中使用过了。不是所有的(事件中有一些标签,这些标签从未在照片中使用过)。所以你可以选择只看基于标签的照片。。。

我还没有任何代码。。。虽然我不是wordpress的新手,但这一点我甚至不知道从哪里开始。

如何显示标签列表,这是一种自定义分类法,受自定义帖子类型的限制?!

任何建议都会很好!

3 个回复
最合适的回答,由SO网友:Daniel Koskinen 整理而成

要将内置标记功能用于自定义帖子类型,需要在注册帖子类型时添加此参数:

\'taxonomies\' => array( \'post_tag\' ),
因此,要注册post类型的事件,您需要执行以下操作(例如):

register_post_type( \'events\', array(
    \'show_ui\' => true,
    \'taxonomies\' => array( \'post_tag\' )
   // etc ...
) );

SO网友:CRIS

所以,我已经解决了我的问题,并提出了这个函数

函数getCustomTaxonomy($posttype,$taxonomy){$custompostsid=get\\u posts(\'post\\u type=\'。$posttype);

$i=0;
$j=0;

foreach ($custompostsid as $post)
{  
    setup_postdata($post);

    $customtags = wp_get_post_terms( $post->ID , $taxonomy);

        foreach ($customtags as $tag) 
        {
            $tagid[$j]=$tag->term_id; 
            $j++;
        }

    $i++;
}

$alltagsid=array_unique($tagid);

$blogurl=get_bloginfo(\'url\');

$nummberofelements=count($alltagsid);

$k=0;

foreach ($alltagsid as $onetagid)
{

 $array = get_term_by(\'id\', $onetagid, $taxonomy, \'ARRAY_A\'); 
 $tagname=print_r($array[name],true);
 $tagcount=print_r($array[count],true);
 $taglink=$blogurl."/?".$taxonomy."=".$tagname."&type=".$posttype;

 echo "<a class=\'taxonomy-link\' href=\'".$taglink."\'>";
     echo $tagname." (".$tagcount.")";
 echo "</a>";
 $k++;

 if ($k<$nummberofelements) echo ", ";
}
}

我工作,但我知道这不是最好的方式。。。因为如果你有很多帖子和标签,它可能会变得很疯狂。。。所以我仍在搜索,但在找到更好的方法之前,这应该可以做到:)

可以随意优化代码;)

顺致敬意,

SO网友:Sarah Neuber
结束

相关推荐

Template tags for Buddypress

是否有一个地方可以显示所有可用的模板标记,以及如何使用它们,类似于wordpress的做法?我正在尝试链接到循环中的配置文件。输出的Ex<a href=\"http://www.mysite.com/members/Tom/\">Tom\'s Profile</a> 试过这个<?php echo( bp_core_get_userlink() ) ?> 但它出错了这给了我作者的名字和url,但我只需要配置文件的url<?php echo( bp