Error grave: la clase 'ms \ WP_Query' no se encuentra en la inicialización del complemento [cerrado]

2

¿Cómo puedo realizar una llamada a WP_Query en la inicialización del complemento y guardar los datos de las publicaciones en $ data?

Estoy obteniendo Fatal error: Class 'ms\WP_Query' not found sin importar en qué gancho llamo al método. Incluso si lo llamo así, add_action('shutdown', array($this, 'get_data')); no funciona (se supone que shutdown hook es el último en ejecutarse) o si llamo con un 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') );
    
pregunta Ivan Topić 31.03.2017 - 02:45

1 respuesta

12

Debido a que está usando un espacio de nombres en esta clase, debe agregar un \ frente a la llamada WP_Query para decirle a PHP que está en el espacio de nombres global y no en el espacio de nombres de esta clase.

Prueba esto: $query = new \WP_Query($args);

    
respondido por el Welcher 31.03.2017 - 05:14

Lea otras preguntas en las etiquetas