web-dev-qa-db-fra.com

Erreur fatale: appel de la fonction non définie post_exists ()

J'utilise la fonction dans ma propre classe comme j'utilise d'autres fonctions wordpress.

Je suis incapable de comprendre pourquoi il est impossible de trouver la fonction alors que ide "va à la déclaration" me pointe vers le fichier wp-admin/includes/post.php

les fichiers wp-admin n'existent pas en tant que fichiers globaux.

3
justnajm

Les fichiers dans wp-admin ne sont chargés que lorsque vous vous trouvez dans la zone d'administration ... lorsque vous consultez des pages ou publiez des messages, ces fonctions ne sont pas chargées. Dans ce cas, vous aurez besoin d'exiger le fichier en premier, vous voudrez donc faire quelque chose comme ceci dans votre fonction:

if ( ! is_admin() ) {
    require_once( ABSPATH . 'wp-admin/includes/post.php' );
}

La partie if ( ! is_admin() ) est importante car WordPress inclut automatiquement le fichier lorsque is_admin() est true. Vous ne souhaitez donc l'inclure que si is_admin() est false. Assurez-vous également d'inclure cet extrait avant vous essayez d'appeler la fonction post_exists().

Si cela ne fonctionne pas, essayez ceci:

if ( ! function_exists( 'post_exists' ) ) {
    require_once( ABSPATH . 'wp-admin/includes/post.php' );
}
8
Wes Moberly