Erro fatal: Classe 'ms \ WP_Query' não encontrada na inicialização do plugin [closed]

2

Como posso fazer uma chamada para o WP_Query na inicialização do plug-in e salvar os dados das postagens em $ data?

Estou recebendo Fatal error: Class 'ms\WP_Query' not found não importa em qual gancho eu chamo o método. Mesmo se eu chamá-lo assim add_action('shutdown', array($this, 'get_data')); ele não funciona ( shutdown gancho é supostamente o último a ser executado) ou se eu ligar com um shortcode 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') );
    
por Ivan Topić 31.03.2017 / 02:45

1 resposta

12

Como você está usando um namespace nesta classe, é necessário adicionar um \ na frente da chamada WP_Query para informar ao PHP que ele está no namespace global e não no namespace dessa classe.

Tente isto: $query = new \WP_Query($args);

    
por Welcher 31.03.2017 / 05:14