将类别+分类术语添加到wp_list_ages()输出

时间:2012-06-21 作者:saltcod

我正在输出一个自定义帖子类型的页面列表-一种使用树的类型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, ancestorparent 在我的<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[] 在上面

希望这有点道理!

谢谢

1 个回复
最合适的回答,由SO网友:Stephen Harris 整理而成

WordPress不是已经在课堂上了吗current_page_parent, current_page_ancestorcurrent_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 假设是一个类名数组。

结束

相关推荐

无法通过ADD_ACTION将css放入头部

我正在尝试向CSS的头部添加一些CSS,但我无法使其工作(我想在主题CSS之前将其添加到头部,以便插件用户可以轻松超越插件的默认CSS,而不需要!重要的超越)。以下是我尝试的内容:<?php add_action(\'wp_head\', \'addCSS\'); function addCSS() { wp_register_style( \'prefix-style\', plugins_url(\'AddToCartStyles.css\', __FILE__