隐藏除WordPress管理面板中的一个产品外的所有产品

时间:2017-12-14 作者:Mohsin

我刚从客户那里得到一个非常奇怪的要求,他想从管理面板的产品选项卡中隐藏所有产品,除了一个产品which has id 9 如果有人知道如何做到这一点,我们将不胜感激。提前谢谢你。顺便说一句,我尝试过使用css,但逻辑没有任何意义,我希望WordPress解决方案可以做到这一点。

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

你必须使用pre_get_posts 钩子以更改WordPress主查询。

$query->get() : https://developer.wordpress.org/reference/classes/wp_query/get/

is_admin() : https://codex.wordpress.org/Function_Reference/is_admin

pre_get_posts 挂钩:https://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts

// Handle the main query and set the post ID to 9
function wpse_288586_hide_products($query) {
    // We have to check if we are in admin and check if current query is the main query and check if you are looking for product post type
    if(is_admin() && $query->is_main_query() && $query->get(\'post_type\') == "product") {
        $query->set(\'post__in\', array(9));
    }
}
add_action(\'pre_get_posts\', \'wpse_288586_hide_products\');

结束

相关推荐