Holen Sie Child-Seiten Slugs der aktuellen Seite in js-Datei

Ich frage alle untergeordneten Seiten auf meiner aktuellen Seite mit einer benutzerdefinierten Abfrage wie dieser ab.

 'page', 'posts_per_page' => -1, 'post_parent' => $post->ID, 'order' => 'ASC', 'orderby' => 'menu_order' ); $subservice = new WP_Query( $args ); if ( $subservice->have_posts() ) : ?> have_posts() ) : $subservice->the_post();?> 

Wie bekomme ich alle Nacktschnecken von diesen Kindseiten in eine JavaScript-function?

Ich initialisiere mein jQuery Plugin so:

 $('#pagepiling').pagepiling({ sectionSelector: '.box', anchors: ['intro', 'section2','section3'], menu: '#menu' )}; 

Das heißt, die Option anchors sollte meine Child-Page-Slugs von meiner aktuellen Seite anzeigen.

Danke für Ihre Hilfe! Cara

Solutions Collecting From Web of "Holen Sie Child-Seiten Slugs der aktuellen Seite in js-Datei"

Ich habe gerade gefunden, was ist ein sauberer Weg, dies zu tun … Dank dieser anderen WPSE Frage Wie füge ich eine PHP-statement zu einem jQuery-String .

Ich habe nie etwas über wp_localize_script () gelernt, bis ich die Antwort auf diese Frage gelesen habe (ich liebe WPSE :-).

PHP

 add_action ('wp_enqueue_scripts', 'localize_js') ; function localize_js () { global $post ; $args = array( 'post_type' => 'page', 'posts_per_page' => -1, 'post_parent' => $post->ID, 'order' => 'ASC', 'orderby' => 'menu_order' ); $subservice = new WP_Query( $args ); $slugs = array () ; while ( $subservice->have_posts() ) { $subservice->the_post(); $slugs[] = $post->post_name ; } wp_reset_postdata () ; wp_enqueue_script ('my_script', plugins_url ('js/my_script.js', __FILE__), array (), false, true) ; // wp_localize_script() will handle the outputing of the relevant JS global decl wp_localize_script ('my_script', 'my_slugs', array ('slugs' => $slugs)) ; return ; } 

JS, meine_script.js

 $('#pagepiling').pagepiling({ sectionSelector: '.box', anchors: my_slugs.slugs, menu: '#menu' )}; 

Wenn ich so etwas brauche, hake ich mich in wp_print_styles ein und gebe alle Werte aus, die ich als JS globals benötige, ala,

PHP

 add_action ('wp_print_styles', 'output_js') ; function output_js () { $args = array( 'post_type' => 'page', 'posts_per_page' => -1, 'post_parent' => $post->ID, 'order' => 'ASC', 'orderby' => 'menu_order' ); $subservice = new WP_Query( $args ); $slugs = array () ; global $post ; while ( $subservice->have_posts() ) { $subservice->the_post(); $slugs[] = $post->post_name ; } $slugs = implode ("', '", $slugs) ; $js = < < var my_slugs = ['$slugs'] ;  EOF; echo $js ; wp_reset_postdata () ; return ; } 

JS

 $('#pagepiling').pagepiling({ sectionSelector: '.box', anchors: my_slugs menu: '#menu' )}; 

Sie könnten es auch über Ajax tun, aber das ist teurer.