致命错误:插件初始化时未找到类‘ms\\WP_Query’

时间:2017-03-31 作者:Ivan Topić

如何调用WP\\u查询插件初始化并将posts数据保存到$data?

我正在Fatal error: Class \'ms\\WP_Query\' not found 无论我在哪个钩子上调用该方法。即使我这样称呼它add_action(\'shutdown\', array($this, \'get_data\')); 它不起作用(shutdown hook应该是最后一个运行的)或者如果我用短代码调用add_shortcode( \'get_data\', array($get_data, \'get_data\') );

<?php
/*
Plugin Name: Test
Description: Test
Version: 0.1
*/

namespace ms;

if (!defined(\'ABSPATH\')) exit;

class get_data {

    private $data = array();    

    public function __construct(){
        // add_action(\'init\', array($this, \'get_data\'));
    }

    public function get_data() {

        $args = array(
            \'post_type\' => \'post\',
            \'posts_per_page\' => 10
            );

        $query = new WP_Query($args);

        if ( $query->have_posts() ) :
            while ( $query->have_posts() ) : $query->the_post();

                $this->data[] = array(
                    \'title\' => get_the_title()
                );

        endwhile;
        wp_reset_postdata();
        endif;

        var_dump($this->data);

    }

$get_data = new get_data();
add_shortcode( \'get_data\', array($get_data, \'get_data\') );

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

因为您在此类中使用的是命名空间,所以需要添加\\ 在WP\\u查询调用之前,告诉PHP它位于全局名称空间中,而不是此类的名称空间。

尝试以下操作:$query = new \\WP_Query($args);

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post