从“从最常用的标签中选择”中删除没有特定元键的标签

时间:2017-08-16 作者:JacobTheDev

我试图只显示与当前登录作者关联的标签;我已经做到了99%,但作者仍然可以通过“从最常用的标签中选择”链接选择与其他用户关联的标签。

如何编辑此项以排除元标记“author”与当前登录的用户ID不匹配的任何标记?

I\'m using this solution to limit everything else.

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

因此,标记云似乎是由AJAX请求生成的常规标记云。此框似乎是通过AJAX生成标记云的唯一位置,因此我们可以使用这些知识来使用get_terms filter可过滤在该AJAX请求中执行的任何术语查询。

function wpse_277075_filter_tag_cloud( $terms, $taxonomies, $args, $term_query ) {
    if ( is_admin() && isset( $_POST[\'action\'] ) && $_POST[\'action\'] === \'get-tagcloud\' ) {
        $args[\'meta_query\'] = array(
            array(
                \'key\'   => \'author\',
                \'value\' => get_current_user_id(),
            )
        );

        $terms = $term_query->query( $args );

        return $terms;
    }

    return $terms;
}
add_filter( \'get_terms\', \'wpse_277075_filter_tag_cloud\', 10, 4 );
内部get_terms 筛选器回调,我已检查$_POST[\'action\'] 变量,因为这将告诉我们是否在AJAX请求中。然后我们重新执行标记查询,但这次使用meta_query 过滤结果。

Note: 此代码假定作者是通过meta_key 属于author 设置为用户ID。

结束

相关推荐

Remove P tags from images

我使用的是WordPress 4.2.2,每次我向wysiwyg添加图像时,它都会将输出的图像包装在段落标记中。我需要去掉这些标签。我在网上找到的所有东西都是从2011年开始的,而且似乎都不起作用。我试着把东西放在函数中。php类:function filter_ptags_on_images($content){ return preg_replace(\'/<p>\\s*(<a .*>)?\\s*(<img .* \\/>)\\s*(<\\/a&g