it-swarm.com.de

Der richtige Weg, um/erfordern PHP Dateien in WordPress

Ich bin ein neuer WordPress-Entwickler und hatte kürzlich (auf mehreren Websites) Probleme mit include_once und require_once für PHP -Dateien. Wenn ich (get_theme_directory_uri() . 'subdir/file') einfüge, wird die angegebene Datei eingeschlossen (oder benötigt, was zu schwerwiegenden Fehlern führt), aber wenn WordPress-Funktionen in 'file' aufgerufen werden, erhalte ich etwas Ähnliches wie:

' Aufruf einer undefinierten Funktion add_action() in/full/path/to/file'.

Die offensichtliche Lösung, die ich gefunden habe, ist zu tun:

include(dirname(__FILE__) . "/subdir/filename");

Ist das richtig oder habe ich den WordPress-Weg verpasst, um Dateien irgendwo einzuschließen?

2
caffeine

Wenn Sie https://codex.wordpress.org/Function_Reference/get_template_directory_uri überprüfen

Sie werden sehen, dass get_template_directory_uri() eine URL zurückgibt, keinen Serverpfad.

Sie sollten stattdessen die Funktion get_template_directory() verwenden:

include get_template_directory() . 'subdir/filename.php';

Für ein Plugin können Sie die Funktion plugin_dir_path() verwenden:

include plugin_dir_path( __FILE__ ) . 'subdir/filename.php';
8
thomascharbit

WordPress 4.7+ führt die Funktionen get_theme_file_path () ein, um Dateien in das WordPress-Theme aufzunehmen.

Schließen Sie so ein:

include get_theme_file_path( '/subdir/filename.php' );

Die Verwendung dieser Funktion hat den Vorteil, dass Sie bei untergeordneten Designs die übergeordnete Designdatei überschreiben können.

Referenz: https://developer.wordpress.org/reference/functions/get_theme_file_path/

0
Maidul