J'essaie de "importer" le noyau de WordPress dans un script propre pour utiliser les fonctionnalités telles que WP_Query, etc. J'ai créé un script dans un sous-répertoire (cadre propre) et souhaitez l'étendre par WordPress, mais à chaque fois Le script jette une erreur:
Erreur fatale b>: appelez à une fonction de membre add_rewrite_tag () sur un non-objet dans ... / WordPress / WP-Inclus / Taxonomy.php < / B> On Line 333 B>
P>
tel que (lorsque je supprime l'add_action ('init', 'create_initial_taxonomies', 0)): P>
Erreur fatale b>: appelez à une fonction de membre add_rewrite_tag () sur un objet non-objet dans ... / wordpress / wp-inclus / post.php b> en ligne 1006 B>
P>
Le non-objet est l'objet $ wp_rewrite. J'ai écho à quelque chose et j'ai compris que le premier $ wp_rewrite est valide et à l'appel suivant non. Je n'ai rien changé dans les fichiers principaux WP. P>
J'essaie d'inclure le noyau en appelant: p> a quelqu'un de quelques idées pour moi? < / p> merci p> p>
3 Réponses :
Réponse courte, faites ceci:
function myFramework() { $wordpress = 'foo'; function wordpressFunction() { global $wordpress; } }
que j'ai aussi compris après quelques tests. Les étendues de WordPress conduit quelqu'un parfois folle. Lorsque l'on comprend le noyau dans une fonction, le noyau entier a des problèmes car les variables sont dans une portée illisible
L'ajout des globaux ne semblait pas m'aider, mais cela m'a au moins aidé à identifier le problème et j'ai trouvé le chargement de WordPress dans la portée globale (au lieu d'une fonction où elle était chargée) résolue mon problème. Merci!
@Ricanderson Je suppose que les globaux ont peut-être changé.
@ JL235 a travaillé comme un charme et une belle explication
J'ai eu la même erreur. Je voulais obtenir des articles avec les permaliens. Cela a aidé:
global $wpdb, $wp_rewrite; require '/(...)/wp-config.php'; $result = $wpdb->get_results( $wpdb->prepare( ... ) ); foreach( $result as &$item ) $item->link = get_permalink( $item->ID );
Le moyen le plus simple d'accéder à tout type de WordPress est programmé consiste à utiliser ce qui suit: à l'aide du code ci-dessus, vous obtiendrez toutes les fonctions que vous recevrez normalement un modèle avec WordPress . J'ai essayé toutes les autres méthodes énumérées ci-dessus et celle-ci est de loin le meilleur. P> p>