Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Wordpress解析查询问题_Php_Wordpress - Fatal编程技术网

Php Wordpress解析查询问题

Php Wordpress解析查询问题,php,wordpress,Php,Wordpress,我正在构建一个插件,在那里我需要能够在Wordpress站点的管理端只显示指定的帖子 如何将我的帖子id数组挂接到帖子中 // Show specified Posts private function ShowPosts($ps) { var_dump($ps); // shows the id's echo '<hr />'; add_filter('parse_query', function() { global $ps;

我正在构建一个插件,在那里我需要能够在Wordpress站点的管理端只显示指定的帖子

如何将我的帖子id数组挂接到帖子中

// Show specified Posts
private function ShowPosts($ps)
{
    var_dump($ps); // shows the id's
    echo '<hr />';
    add_filter('parse_query', function() {
        global $ps;
        var_dump($ps); // Shows 3 nulls
        global $query, $pagenow, $post_type;
        if($pagenow == 'edit.php' && $post_type == 'post'){
            $query->query_vars['post__in'] = $ps;
        }
    });
}
//显示指定的帖子
私人功能展示台($ps)
{
var_dump($ps);//显示id的
回声“
”; 添加过滤器('parse_query',function()){ 全球$ps; var_dump($ps);//显示3个空值 全局$query、$pagenow、$post_type; 如果($pagenow=='edit.php'&&&$post\u type=='post'){ $query->query\u vars['post\u in']=$ps; } }); }
第一个
var_dump
显示ID数组,而第二个没有


我在这里做错了什么?

您已经在函数中,因此您不能在这里声明全局变量,如果您愿意,这是最简单的修复方法

private function ShowPosts($ps)
{
    $_SESSION['psvalue'] = $ps; // shows the id's
    echo '<hr />';
    add_filter('parse_query', function() {
        $ps = $_SESSION['psvalue'];
        global $query, $pagenow, $post_type;
        if($pagenow == 'edit.php' && $post_type == 'post'){
            $query->query_vars['post__in'] = $ps;
        }
    });
}
private function ShowPosts($ps)
{
$\u SESSION['psvalue']=$ps;//显示id的
回声“
”; 添加过滤器('parse_query',function()){ $ps=$\会话['psvalue']; 全局$query、$pagenow、$post_type; 如果($pagenow=='edit.php'&&&$post\u type=='post'){ $query->query\u vars['post\u in']=$ps; } }); }
另一个修复方法是使用全局关键字

private function ShowPosts($ps)
    {
        $GLOBALS['psvalue'] = $ps;
        echo '<hr />';
        add_filter('parse_query', function() {
            $ps = $GLOBALS['psvalue'];
            global $query, $pagenow, $post_type;
            if($pagenow == 'edit.php' && $post_type == 'post'){
                $query->query_vars['post__in'] = $ps;
            }
        });
    }
private function ShowPosts($ps)
{
$GLOBALS['psvalue']=$ps;
回声“
”; 添加过滤器('parse_query',function()){ $ps=$GLOBALS['psvalue']; 全局$query、$pagenow、$post_type; 如果($pagenow=='edit.php'&&&$post\u type=='post'){ $query->query\u vars['post\u in']=$ps; } }); }
为什么有%ps的全局输入?您也可以在wordpress.stackexchange.com上询问