webentwicklung-frage-antwort-db.com.de

Wie entferne ich ein require_once Admin-Panel aus dem übergeordneten Theme aus der child theme functions.php?

Im übergeordneten Thema befindet sich Folgendes am Ende der Datei functions.php .

require_once(TEMPLATEPATH . '/admin/admin-menu.php');

In der Datei function.php des untergeordneten Themas enthält dieser Code das untergeordnete Administrationsfenster.

require_once(STYLESHEETPATH . '/admin/admin-menu.php');

Wie Sie sehen, sollte ich nicht beide Dateien verwenden, da die unterste Datei für bestimmte lokalisierte Dateien (js, css) get_stylesheet_directory_uri() anstelle von get_template_directory_uri() enthält. Daher muss ich die übergeordnete Datei vom Laden entfernen

Ich glaube, ich muss den Hook remove_action verwenden, bin mir aber nicht sicher, wie ich das richtig machen soll. Ich kann auch auf Google keine gute Antwort finden.

Ich habe angefangen, Folgendes in die Datei functions.php in meinem untergeordneten Thema zu schreiben, aber ich weiß nicht, wie ich es richtig schreiben soll.

function remove_parent_admin_panel {
   remove_action('remove_panel', '[WHAT-GOES-HERE?]');
}

Dann muss ich wohl einen add_action-Hook verwenden, um die obige Funktion hinzuzufügen und das übergeordnete Admin-Panel zu entfernen.

Soll ich den übergeordneten require_once mit einer Funktionsanweisung umschließen? Bin ich auf dem richtigen Weg?

3
micah

In Fällen, in denen Sie PHP Dateien benötigen/einschließen möchten, aber dennoch zulassen, dass untergeordnete Designs diese PHP Dateien vollständig ersetzen, sollten Sie die Funktion locate_template verwenden.

Beispiel: Eltern machen das:

locate_template( 'admin/file.php', true );

Dadurch wird die Datei admin/file.php entweder im untergeordneten oder im übergeordneten Thema gefunden, und es wird eine Anforderung dafür gestellt (das ist, wofür das gilt).

Um die Datei im untergeordneten Element zu ersetzen, müssen Sie nur die Datei im untergeordneten Element ersetzen. Einfach. Einfach.

Hinweis: Die Methode verwendet standardmäßig require_once. Wenn Sie nur benötigen möchten, übergeben Sie einen dritten Parameter von false.

5
Otto

Suchen Sie in der Datei \admin\admin-menu.php des übergeordneten Themas nach der Funktion add_menu_page(). Es sollte in eine Funktion eingeschlossen und diese Funktion in einem add_action( 'admin_init', 'function-name' )-Aufruf aufgerufen werden.

Sie müssen remove_action( 'admin_init', 'function-name' ) für jeden Funktionsnamen aufrufen.

0
Chip Bennett