J'essaie d'obtenir les informations de l'utilisateur actuel dans mon plug-in en utilisant func wp_get_current_user (). Mais je reçois Call to undefined function wp_get_current_user()
Apparemment, cela se produit parce que le fichier /wp-includes/pluggable
qui contient la fonction n’est chargé qu’après le chargement des plugins.
Quelqu'un a des idées sur la façon d'obtenir les détails de l'utilisateur dans mon plugin?
Apparemment, cela se produit parce que le fichier/wp-includes/pluggable qui contient la fonction n'est chargé qu'après le chargement des plugins.
En effet, ça l'est. Alors intégrez ce que vous faites dans une fonction et accrochez-le au plugin_loaded ou au crochet init. (voir le fichier wp-settings.php)
Exemple:
add_action('init','do_stuff');
function do_stuff(){
$current_user = wp_get_current_user();
// ...
}
Vous pouvez utiliser ceci,
<?php
if(!function_exists('wp_get_current_user')) {
include(ABSPATH . "wp-includes/pluggable.php");
}
?>
cela devrait résoudre votre problème :)
Après l'installation de wp 3.8, j'ai eu le même problème avec une page que j'ai avec ajax. Je l'ai corrigé avec le code suivant:
if(!function_exists('wp_delete_user')) {
include(ABSPATH . "wp-admin/includes/user.php.");
}
Apparemment, la fonction est déplacée de pluggable.php vers user.php. Je ne comprends toujours pas pourquoi cela ne fonctionne pas après avoir inclus le fichier wp-blog-header.php.
essayez d'ajouter aussi
require_once('../../../wp-load.php');
de même que
require_once(ABSPATH.'wp-includes/pluggable.php');
J'ai reçu le même message d'erreur après la mise à jour de WP. La solution qui a fonctionné pour moi est simple et rapide:
Recherchez capacités.php dans le répertoire wp-includes (WP 3.8.x). Ajoutez ce qui suit en haut, après la balise php d’ouverture:
require_once('pluggable.php');
mon problème résolu avec ce code s'il vous plaît
include_once(ABSPATH . 'wp-includes/pluggable.php');
wp-includes
mais:include_once(ABSPATH . "wp-admin/includes/plugin.php");
Aussi fou que cela puisse paraître, le problème de mon application venait de ce que je disposais d'un FICHIER appelé menu.php , où j'avais une classe pour créer des menus Wordpress.
Littéralement, changer simplement le nom du FICHIER de menu.php en nav-menu.php , corrige le problème. J'ai reproduit le problème 3 fois parce que je ne pouvais pas croire que le nom du fichier pouvait être le problème.
Juste au cas où quelqu'un voudrait savoir ce qu'il y avait dans ce fichier, le voici:
class OwNavMenu extends OwCpnt
{
function __construct( $location, $args ) {
$show = $args['show'];
$span = $args['span'];
if ( $show ) {
$this->menu( $location, $span );
}
}
function menu( $location, $span ) {
if ( $location ) {
echo '<div id="ow-' . $location . '" class="ow-nav ow-' . $location . '">';
wp_nav_menu(
array(
'theme_location' => $location,
'link_before' => ( $span ) ? '<span>' : '',
'link_after' => ( $span ) ? '</span>' : ''
)
);
echo '</div>';
}
}
}