我正在输出一个自定义帖子类型的页面列表-一种使用树的类型wp_list_pages()
.
一切都很顺利,只是现在我想在李家开设一些造型课程。在这家伙的帮助下,情况也不会太糟:
function tsep_page_css_class( $css_class, $page, $depth, $args, $current_page ) {
if ( !isset($args[\'post_type\']) || !is_singular($args[\'post_type\']) )
return $css_class;
global $post;
$current_page = $post->ID;
$_current_page = $post;
_get_post_ancestors($_current_page);
if ( isset($_current_page->ancestors) && in_array($page->ID, (array) $_current_page->ancestors) )
$css_class[] = \'current-page-ancestor\';
if ( $page->ID == $current_page )
$css_class[] = "current-page-item";
elseif ( $_current_page && $page->ID == $_current_page->post_parent )
$css_class[] = \'current-page-parent\';
return $css_class;
}
add_filter( \'page_css_class\', \'tsep_page_css_class\', 10, 5 );
这基本上是打印出来的
current-page-item
,
ancestor
或
parent
在我的
<li>
. 这部分工作得很好。然而,我想要的是在
<li>
课程也一样。因此,其中一个可能是这样的:`
我有一个开始:
$terms = get_the_terms( $post->ID, \'content-type\' );
if ( $terms && ! is_wp_error( $terms ) ) :
$content_type = array();
foreach ( $terms as $term ) {
$content_type[] = $term->name;
}
$the_content_type = join( ", ", $the_content_type );
endif;
但最终,
$the_content_type
似乎什么都没还。
我怎样才能$the_content_type
返回一个值,如何将该值放入$css_class[]
在上面
希望这有点道理!
谢谢
最合适的回答,由SO网友:Stephen Harris 整理而成
WordPress不是已经在课堂上了吗current_page_parent
, current_page_ancestor
和current_page_item
(参见source). 您使用的过滤器在1046上调用。
至于你的问题,你要创建一个数组$content_type
然后尝试用$the_content_type
.
尝试:
function wpse56088_page_css_class( $css_class, $page, $depth, $args, $current_page ){
$terms = get_the_terms( $page->ID, \'content-type\' );
if ( $terms && ! is_wp_error( $terms ) ){
$term_names = wp_list_pluck($terms,\'name\');
//Add term names to array of classes
$css_class = array_merge($css_class, $term_names);
}
return $css_class;
}
add_filter( \'page_css_class\', \'wpse56088_page_css_class\', 10, 5 );
注意事项
$css_class
假设是一个类名数组。