webentwicklung-frage-antwort-db.com.de

Hinzufügen von Funktionscodes aus dem Inhalt einer Seite in der Kopfzeile und Ausblenden derselben aus dem Inhalt der Seite

Ich habe eine Seite erstellt und den folgenden Shortcode von wp-orbit-slider hinzugefügt

 [orbit-slider category="test"] 

Ich möchte den Inhalt von

 [orbit-slider category="test"] 

angezeigt werden auf dem Header-Teil, anstatt auf dem Inhaltsbereich Teil, was das WordPress in der Regel tut. Ich habe versucht, den Funktionscode in der Datei header.php einzufügen, aber der gleiche Inhalt wird auch im Inhaltsbereich dupliziert. Ich muss das vermeiden. Wie kann das erreicht werden?

2
user7282

Dies könnte bei Ihnen funktionieren, wenn Sie versuchen, sich frühzeitig mit dem the_content-Filter zu verbinden, um das Shortcode-Tag zu entfernen:

add_filter('the_content', 'ad_filter_the_content',1,1);
function ad_filter_the_content($content) {
    // specify page id or array of page ids to include
    if (is_page(5)) {
        return str_replace('[orbit-slider category="test"]', '', $content);
    }
    return $content;
}
1
Ahmad M

Sie können den Aufruf PHP für einen Shortcode verwenden. Es funktioniert so:

echo do_shortcode('[orbit-slider category="test"]');

Aus Ihrer Frage gehe ich jedoch davon aus, dass Sie für jede Seite unterschiedliche Shortcodes haben. Wenn dies der Fall ist, fügen Sie ein benutzerdefiniertes Feld für Ihre Seiten hinzu, das die category für Ihren Orbit-Slider enthält.

Wenn Sie das in Taxonomy System eingebaute System (z. B. die Standardkategorien) verwenden, müssen Sie natürlich kein benutzerdefiniertes Feld verwenden, sondern können nur die Kategorie verwenden. Ich benutze die erste Kategorie für die Kategorie-Version - stellen Sie sicher, dass Sie die Ausnahmen hier selbst behandeln.

// for the custom field version
$orbitcategory = get_post_meta( get_the_ID(), 'my_orbit_slider', true );
// for the Taxonomy version
$orbitcategory = get_the_category( get_the_ID() );
$orbitcategory = $orbitcategory[0]->name;



$thisslider = '[orbit-slider category="' . $orbitcategory . '"]';

echo do_shortcode( $thisslider );

Du solltest gut so sein.

Und denken Sie daran, Ihren Shortcode nicht erneut in den Inhalt einzufügen :)

1
fischi