it-swarm.com.de

wP-Enqueue-Stil für bestimmte Seitenvorlagen

Ich bin gerade dabei, ein Thema zu erstellen. Ich möchte Landing Pages mithilfe von Seitenvorlagen hinzufügen. Ich kann nirgendwo etwas finden, das zeigt, wie man Styles oder Js für bestimmte Seitenvorlagen einreiht. Irgendwelche Vorschläge. Ex. Landing Page 1 - landing-page-template-one.php benötigt einen ganz anderen Style und js als der Blog oder die Homepage.

23
Sean

Wenn Sie vorhaben, viel WP zu entwickeln, sollten Sie diese Seite mit einem Lesezeichen versehen: http://codex.wordpress.org/Conditional_Tags

Die andere Antwort funktioniert, aber die Bedingung hängt davon ab, dass sich Ihre Seite (myurl.com/this-is-the-slug) niemals ändert. Eine zuverlässigere Methode (IMO) und eine, die in diesen Fall passt, wäre, stattdessen die bedingte Prüfung is_page_template('example-template.php') zu verwenden.

27
kchjr

Sie können die is_page( 'landing-page-template-one' )-Bedingung für Ihre seitenspezifischen Stile/Skripte als Teil Ihrer allgemeinen Enqueue-Anweisungen verwenden.

function my_enqueue_stuff() {
  if ( is_page( 'landing-page-template-one' ) ) {
    /** Call landing-page-template-one enqueue */
  } else {
    /** Call regular enqueue */
  }
}
add_action( 'wp_enqueue_scripts', 'my_enqueue_stuff' );

Sie könnten sogar weitere elseif für andere Seiten usw. in das Obige verketten.

Referenz: Funktionsreferenz - is_page()

22
Edward Caissie

Befindet sich die Seitenvorlage in einem Unterverzeichnis des Themas (seit WP 3.4), stellen Sie dem Dateinamen der Vorlage den Ordnernamen und einen Schrägstrich voran, z.

is_page_template( 'templates/about.php' );

Die ganze Funktion sieht also so aus:

function my_enqueue_stuff() {
  if ( is_page_template( 'landing-page-template-one' ) ) {
    /** Call landing-page-template-one enqueue */
  } else {
    /** Call regular enqueue */
  }
}
add_action( 'wp_enqueue_scripts', 'my_enqueue_stuff' );

Referenz: Offizielle Dokumentationen

1
Razon K.

Angenommen, Ihr Vorlagenname ist temper und Sie möchten Bootstrap auf dieser Seite laden, damit Sie den Stil für bestimmte Seitenvorlagen wie diese festlegen können:

gehe zu function.php file und überprüfe die Bedingung wie folgt:

function temper_scripts() {

    if(basename(get_page_template()) == 'temper.php'){

       wp_enqueue_style('bootstrap', '//stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css');

    }

}

add_action('wp_enqueue_scripts', 'temper_scripts');
0
Touhid Imam

Ich weiß nicht, ob die in anderen Antworten angegebenen Lösungen funktionieren, aber (da es keine akzeptierte Antwort gibt!) Scheint die richtige Antwort derzeit zu sein:

function my_enqueue_stuff() {
    if ( get_page_template_slug() == 'landing-page-template-one.php' ) {
        wp_enqueue_script('my-script-handle', 'script-path.js', ... );
    }
}
add_action( 'wp_enqueue_scripts', 'my_enqueue_stuff' );

is_page_template () funktioniert laut https://developer.wordpress.org/reference/functions/is_page_template/ nur außerhalb der Schleife.

0
richplane