Wenn ich zum Beispiel Code in die functions.php meines Themes schreibe (z. B. einen benutzerdefinierten Post-Typ oder etwas hinzufügen), funktioniert das einwandfrei. Wenn ich es in eine neue Datei verschiebe, funktioniert die Datei in der Datei functions.php meines Themas include()
nicht mehr (aber der Debug-Code mit error_log()
funktioniert immer noch.
z.B.
Hier ist die functions.php:
<?php
// ###### functions.php ######
error_log("fu_debug: Including the post type.");
add_action('init', 'fu_create_project_post_type');
function fu_create_project_post_type() {
error_log("fu_debug: create project post type");
register_post_type( 'fu_project',
array(
'labels' => array(
'name' => __( 'Projects' ),
'singular_name' => __( 'Project' )
),
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'projects'),
)
);
}
?>
Das funktioniert gut. Nun, wenn ich die functions.php so ändere:
<?php
// ###### functions.php ######
include "newfile.php";
?>
und füge den Code in newfile.php so ein:
<?php
// ###### newfile.php ######
error_log("fu_debug: Including the post type.");
add_action('init', 'fu_create_project_post_type');
function fu_create_project_post_type() {
error_log("fu_debug: create project post type");
register_post_type( 'fu_project',
array(
'labels' => array(
'name' => __( 'Projects' ),
'singular_name' => __( 'Project' )
),
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'projects'),
)
);
}
?>
der Code funktioniert nicht mehr, aber die Fehlermeldung error_log () wird weiterhin in den Protokollen angezeigt.
Warum funktioniert die Fehlermeldung immer noch, der WordPress-Code jedoch nicht?
Wenn Sie Dateien in functions.php
aufnehmen, müssen Sie mit get_template_directory()
auf den richtigen Dateipfad verweisen:
include( get_template_directory() . '/newfile.php' );