我认为这很容易,尽管事实证明这很难。我的最终目标是将jQuery同位素集成到我的wordpress产品组合中。我已经让同位素在wordpress之外工作,但我很难将自定义分类法指定为类名。所以我不需要同位素方面的帮助,只需要将分类法指定为类。
我有一个自定义的帖子类型portfolio
.
公文包有两个自定义分类法,我想用它们在归档页面上过滤结果。一种分类法是“媒体”,另一种分类法是“活动”
因此,如果我将媒体分类法指定为“打印”,将活动分类法指定为“本地”,则我希望归档页面上的输出如下:
<div id="post-34" class="print local">...</div>
但是我现在有这个
<div id="post-34" class>...</div>
我按照《codex》中关于get\\u the\\u术语的说明进行了操作。我将此代码添加到我的函数中。php文件:
<?php // get taxonomies terms links
function custom_taxonomies_terms_links() {
global $post, $post_id;
// get post by post id
$post = &get_post($post->ID);
// get post type by post
$post_type = $post->post_type;
// get post type taxonomies
$taxonomies = get_object_taxonomies($post_type);
foreach ($taxonomies as $taxonomy) {
// get the terms related to post
$terms = get_the_terms( $post->ID, $taxonomy );
if ( !empty( $terms ) ) {
$out = array();
foreach ( $terms as $term )
$out[] = \'<a href="\' .get_term_link($term->slug, $taxonomy) .\'">\'.$term->name.\'</a>\';
$return = join( \', \', $out );
}
}
return $return;
} ?>
然后,我将echo调用放在了归档公文包循环中的类调用中。php页面如下:
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<div id="post-<?php the_ID(); ?>" class="<?php echo custom_taxonomies_terms_links(); ?>">
任何帮助都将不胜感激。这让我抓狂,我想不出来。
最合适的回答,由SO网友:GhostToast 整理而成
您提到的函数将返回一个链接列表——您不正试图将术语slug作为一个类来使用吗?为什么不。。。。
$terms = get_the_terms($post->ID, \'my-category\');
$more_terms = get_the_terms($post->ID, \'another-category\');
$slug_out = array();
foreach($terms as $term){
$slug_out[] = $term->slug;
}
foreach($more_terms as $term){
$slug_out[] = $term->slug;
}
echo \'<div class="\'.implode(\' \', $slug_out).\'">\';