web-dev-qa-db-ger.com

Verwenden Sie require_once in einem Plugin?

Was ist der Unterschied zwischen diesen beiden Codefragmenten und welches sollte ich für ein WordPress-Plugin verwenden?

require_once(dirname(__FILE__).'/inc/canagan_admin_functions.php');
require_once( '/inc/canagan_admin_functions.php' );

Vielen Dank,

Matt

1
Shoebox

Der erste ist wie gesagt ...

Fügen Sie die Datei ein, die sich im Verzeichnis inc oberhalb des Verzeichnisses befindet, in dem sich diese Datei befindet.

Die zweite Aussage lautet ...

suchen Sie im Server-Stammverzeichnis (/) im Ordner inc nach canagan_admin_functions.php, und schließen Sie ihn ein.

Der erste wird funktionieren, der zweite nicht. In der Sekunde suchen Sie im Stammverzeichnis des gesamten Dateisystems, in dem sich die Datei sicherlich nicht befindet.

Wenn ich ein Plugin starte, das sich über mehrere Dateien erstreckt und/oder CSS- oder JS-Dateien in die Warteschlange stellt, richte ich normalerweise ein paar Konstanten ein, um mir dabei zu helfen. Hier ist ein Beispiel .

<?php
define( 'CD_PLUGIN_PATH', plugin_dir_path( __FILE__ ) );
define( 'CD_PLUGIN_URL', plugin_dir_url( __FILE__ ) );

plugin_dir_path und plugin_dir_url sind nett, weil sie immer Pfade/URLs mit abschließenden Schrägstrichen zurückgeben.

Dann benutze ich die Konstanten, um Dateien aufzunehmen/zu fordern. Verhindert, dass bei jedem Include dirname(__FILE__) aufgerufen werden muss.

Sie können dann die Konstanten verwenden, um Dateien einzuschließen ...

require_once( CD_PLUGIN_PATH . 'path/to/file.php' );

oder um Skripte/Stile in die Warteschlange zu stellen ...

<?php
add_action( 'wp_enqueue_scripts', 'wpse35088_enqueue' );
function wpse35088_enqueue()
{
    wp_enqueue_script( 'wpse35088-script', CD_PLUGIN_URL . 'path/to/script.js' );
}
7
chrisguitarguy