Erweiterte benutzerdefinierte Felder – werden angezeigt, wenn eine bestimmte Vorlage verwendet wurde?

Ich weiß, wie meine Feldgruppen auf bestimmten Seiten angezeigt werden (Anzeigeort: Seite entspricht myPage).

Ich habe ein paar verschiedene Vorlagen auf meiner Website und möchte Feldgruppe X anzeigen, wenn die Seite Vorlage Y verwendet. Ist das möglich?

Solutions Collecting From Web of "Erweiterte benutzerdefinierte Felder – werden angezeigt, wenn eine bestimmte Vorlage verwendet wurde?"

Es ist schwer, eine genaue Antwort zu geben, ohne den Code zu teilen. Die Verwendung von is_page_template() in einer if statement hilft jedoch bei der Anzeige der benutzerdefinierten is_page_template() :

 if ( is_page_template( 'template-y.php' ) ) { # Display Field Group X code here... } else { # Do something else... } 

Auch wenn Sie Ihren Code bereitstellen könnten, kann ich Ihnen eine bessere Antwort geben.

Sie sagen, dass Sie bereits wissen, wie Sie Felder hinzufügen. Sobald Sie die Metabox hinzufügen, die diese Felder enthält, fügen Sie den folgenden Code hinzu. Dadurch wird die Anzeige der Metabox umgeschaltet, wenn die Seitenvorlage geändert wird. Sie müssen die Metabox-ID und den Dateinamen der Seitenvorlage ändern, die bei Auswahl die Metabox anzeigen soll. Untersuchen Sie die Seite, um die Metabox-ID zu finden.

Wenn die Metabox die ID “metabox_id” hat und angezeigt werden soll, wenn der Dateiname der ausgewählten Seitenvorlage “template-file-name.php” lautet, verwenden Sie Folgendes.

In den functionen.php

 add_action('admin_enqueue_scripts', 'my_admin_script'); function my_admin_script() { wp_enqueue_script('my-admin', get_bloginfo('stylesheet_directory').'/js/custom-admin.js', array('jquery'), '1.0.0', true); } 

In custom-admin.js

 (function($){ $(document).ready(function() { $('#page_template').change(function() { $('#metabox_id').toggle($(this).val() == 'template-file-name.php'); //Change }).change(); }); })(jQuery);