我遇到了一个愚蠢的情况,不知何故我找不到解决办法,真的需要一些帮助!
所以我正在做一个项目,除了帖子和页面之外,我还有两种自定义的帖子类型:照片和事件。
我创建了一个名为“标记”的自定义分类法。此分类法适用于帖子、页面、照片和事件。。。因此,基本上你可以给每件事都添加一个标签,你可以从其他地方使用的标签中选择任何地方(例如:如果你在活动中添加了一些标签,那么你以后可以在照片中选择相同的标签)。
理想的做法是到处展示相关的东西。因此,如果您正在参加活动,您将在侧边栏中看到相关的新闻、照片,甚至页面条目。。。等等
现在,我只想在照片部分显示标签,这些标签已经在自定义帖子类型的照片中使用过了。不是所有的(事件中有一些标签,这些标签从未在照片中使用过)。所以你可以选择只看基于标签的照片。。。
我还没有任何代码。。。虽然我不是wordpress的新手,但这一点我甚至不知道从哪里开始。
如何显示标签列表,这是一种自定义分类法,受自定义帖子类型的限制?!
任何建议都会很好!
最合适的回答,由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 ", ";
}
}
我工作,但我知道这不是最好的方式。。。因为如果你有很多帖子和标签,它可能会变得很疯狂。。。所以我仍在搜索,但在找到更好的方法之前,这应该可以做到:)
可以随意优化代码;)
顺致敬意,