2016-07-09 11 views
3

Beim Entwickeln eines WordPress-Plugins, bei dem ich eine Seite über die index.php-Datei erstelle, verwendet diese Seite auch eine benutzerdefinierte Vorlage, bei der der Benutzer Informationen in einer Metabox bearbeiten muss.Wordpress - Metabox nur auf einer bestimmten Seite anzeigen

Ich habe Metaboxen zuvor zu Plugins hinzugefügt, aber noch nie in dieser Situation - wie kann ich die Metabox nur auf dieser einen Seite anzeigen?

Wäre offen für alle Vorschläge - ich bin sicher, es ist etwas Einfaches!

Danke, Allan

Antwort

3

Fügen Sie diese auf functions.php

add_action('admin_init','my_meta_init'); 
function my_meta_init() 
{ 
$post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID'] ; 
// checks for post/page ID 
if ($post_id == '84') 
{ 
    add_meta_box('my_all_meta_1', 'My Custom Meta Box 1', 'my_meta_setup_1', 'page', 'normal', 'high'); 
} 
$template_file = get_post_meta($post_id,'_wp_page_template',TRUE); 
// check for a template type 
if ($template_file == 'home.php') 
{ 
    add_meta_box('my_meta_2', 'My Custom Meta Box 2', 'my_meta_setup_2', 'page', 'normal', 'high'); 
} 

Es prüft, ob bearbeitet Seite richtige ID oder mit Vorlage haben. Wählen Sie einen aus und ändern Sie die ID, den Vorlagennamen.

+0

Diese bedingte Validierung funktioniert mit dem ** metabox plugin **, setzen Sie einfach den 'add_filter ('rwmb_meta_boxes', 'function');' innerhalb der bedingten (if) – Gendrith

+0

Dies können Sie auch tun in functions.php ** '$ title_search = get_the_title ($ post_id);' ** und Validierungen nach Titel vornehmen, und Sie werden sich keine Sorgen machen über die Änderung der $ post_id Nummer (wenn Sie migrieren müssen oder der Benutzer die Seite löscht und neu erstellt) – Gendrith