GET_POST_CLASS不能正常工作

时间:2016-10-11 作者:Trenton Moore

我的WordPress网站上有一个插件,列出了访问量最大的页面。我最近意识到它正在显示某些我不想显示的页面。我还想能够禁用特定类别的页面。

我发现这行代码用于小部件的实际显示:

public static function list_items( $post, $defaults ) {
        setup_postdata( $post );
        $post_id                = get_the_ID();
        $title                  = get_the_title() ? get_the_title() : $post_id;
        $post_class         = implode(get_post_class());
        $permalink          = get_permalink();
        $pre_thumbnail  = (has_post_thumbnail() && $defaults[\'thumbnail\'] == \'before_title\') ? get_the_post_thumbnail(get_the_ID(), $thumbnail_size) : \'\';
        $post_thumbnail = (has_post_thumbnail() && $defaults[\'thumbnail\'] == \'after_title\') ? get_the_post_thumbnail(get_the_ID(), $thumbnail_size) : \'\';
        $item                       = \'
            <li class="\' . $post_class . \'">
                <a href="\' . $permalink . \'" title="\' . $title . \'">
                    \' . $pre_thumbnail . $title . $post_thumbnail . \'
                </a>
            </li>
        \';
        $item                       = apply_filters(\'wp_most_popular_list_item_single\', $item, $post_id, $title, $post_class, $permalink);
        echo $item;
    }
虽然这样做有效,但当它显示类时,它们的间距不正确,因此应该显示一个页面:class="post-20 pagetype-page status-publish hentry category-member tag-member" 而是显示class="post-20pagetype-pagestatus-publishhentrycategory-membertag-member".

因此,我无法将目标锁定在该类category-member 使用CSS或任何其他类。我怎样才能解决这个问题?

我已尝试删除implode()$post_class 数组,但这没有任何作用。我也尝试过简单地使用post_class()get_post_class() 无济于事。

1 个回复
SO网友:Dave Romsey

空字符串用于的glue参数implode(). get_post_class() 将返回一个数组,并且要用空格分隔数组值,请使用以下方法:

$post_class = implode( \' \', get_post_class() );
这似乎是WP Most Popular 插件。我向wordpress提交了一期。组织论坛here. 希望作者能够修复这个bug,否则如果插件更新,上面发布的修复将被覆盖。

相关推荐

My widgets do not save

每次我保存我的小部件并离开页面时,我的小部件都会消失。侧边栏已完全清空,不会保存任何更改。控制台或PHP日志中没有任何错误。如果我将小部件直接复制并保存在数据库中widgets_text, 它们将被显示,但我仍然无法在侧边栏中添加或删除任何内容。这只发生在我的右侧边栏上,左侧边栏工作正常,但它们都以相同的方式注册。这是我注册侧边栏的方式:function my_widgets_init() { register_sidebar( array ( \'name\'