WordPress-Fehler: Aufruf einer undefinierten Funktion im Plugin

Lesezeit: 2 Minuten

Ich habe eine Funktion mit dem Shortcode Exec PHP-Plugin geschrieben und die Funktion funktioniert hervorragend, wenn ich sie im Editor ausführe.

Wenn ich es in ein Plugin verschiebe, sehe ich im Protokoll Fehler wie diese:

PHP Fatal error: Call to undefined function wp_create_category()

Mir ist klar, dass dies an fehlenden Includes usw. liegt.

Was ist der richtige Weg, um die eingebauten WordPress-Funktionen für ein Plugin einzubinden?

Mein Plugin verwendet die folgenden WordPress-Funktionen

wp_create_category
username_exists
wp_generate_password
wp_create_user
wp_insert_post
update_post_meta
add_post_meta

  • Versuchen Sie, dies in Ihre Datei aufzunehmen, und lassen Sie es mich dann wissen — require_once (WORDPRESS_HOME. ‘wp-config.php’); require_once(WORDPRESS_HOME. ‘wp-includes/wp-db.php’); require_once(WORDPRESS_HOME. ‘wp-admin/includes/taxonomy.php’);

    – tauschen

    29. August 2012 um 3:54 Uhr

  • Das funktioniert. Warum reichen Sie es nicht als Antwort ein, damit ich Sie gutschreiben kann?

    – Kevin

    29. August 2012 um 4:19 Uhr

  • fertig.. jetzt als Antwortprüfung hinzugefügt 🙂 und danke, dass du deine Bedenken gezeigt hast 🙂

    – tauschen

    29. August 2012 um 4:52 Uhr

Verwenden Sie den folgenden Code, der gut funktioniert, habe ich getestet

   require_once(ABSPATH . 'wp-config.php'); 
   require_once(ABSPATH . 'wp-includes/wp-db.php'); 
   require_once(ABSPATH . 'wp-admin/includes/taxonomy.php'); 

  • Stimmen Sie dies wegen des Verweises auf ABSPATH ab.

    – Jahmic

    5. Oktober 2014 um 14:07 Uhr

  • Nur für mich require_once(ABSPATH . 'wp-admin/includes/taxonomy.php'); war notwendig (zusammen mit require_once( "../wp-load.php" );)

    – Gerhard Schneider

    28. Dezember 2015 um 11:33 Uhr

Versuchen Sie, dies in Ihre Datei aufzunehmen, und lassen Sie es mich dann wissen —

require_once(WORDPRESS_HOME. 'wp-config.php'); 
require_once(WORDPRESS_HOME. 'wp-includes/wp-db.php'); 
require_once(WORDPRESS_HOME. 'wp-admin/includes/taxonomy.php'); 

Ich weiß, das ist eine sehr alte Frage, aber irgendwie hat niemand eine Lösung erwähnt, die ich im Sinn habe.

Ich denke, der richtige Weg, dies zu tun, besteht darin, den richtigen Init-Hook in Ihrem Plugin zu verwenden. Das Hinzufügen von require_once() scheint mir ein Hack zu sein.

Einige Funktionen werden also nur für den Admin-Bereich und einige nur für das Frontend geladen. Abhängig davon, verwenden Sie den richtigen Haken in Ihrem Plugin.

add_action('init', function () {}

oder

add_action('admin_init', function () {}

Sie können natürlich beide in einem Plugin haben.

1174970cookie-checkWordPress-Fehler: Aufruf einer undefinierten Funktion im Plugin

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy