Comment puis-je appeler WP_Query lors de l'initialisation du plug-in et enregistrer les données des publications dans $ data?
Je reçois Fatal error: Class 'ms\WP_Query' not found
, peu importe le hook sur lequel j'appelle la méthode. Même si je l’appelle comme ceci add_action('shutdown', array($this, 'get_data'));
ça ne marche pas (shutdown
hook est censé être le dernier à courir) ou si j’appelle avec 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') );
Comme vous utilisez un espace de noms dans cette classe, vous devez ajouter un \
devant l'appel WP_Query pour indiquer à PHP qu'il se trouve dans l'espace de noms global et non dans l'espace de noms de cette classe.
Essayez ceci: $query = new \WP_Query($args);