Hallo zusammen.
Ich habe ein seltsames Problem mit einer Custom Meta Box für das ich einfach keine Lösung finde.
In der functions.php habe ich eine Custom Meta Box definiert, die alle Namen der gespeicherten "Meta Slider Slideshows" queried und in der Page Admin Seite per Dropdown zur Auswahl stehen soll. Seltsamerweise wird nach Speichern der Seite, egal was in der Meta Box ausgewählt ist, der Permalink der Seite geändert, und zwar wird der Page-Name durch den letzten erhaltenen Meta Slider Name ersetzt, z.b. http://test.de/test-page wird zu http://test.de/slideshow2 geändert, angenommen dass ich zwei slideshows, slideshow1 and slideshow2, gespeichert habe.
Ich habe durch zahllose Tests heraus gefunden, dass das Problem auftritt, sobald der While-Loop des Queries ausgeführt wird (siehe code). Ohne die Abfrage while ( $my_query->have_posts() ) : $my_query->the_post(); wird nichts geändert. Es ist also egal, WAS in der While-Schleife getan wird, die Abfrage alleine reicht schon, dass der Permalink ungewollt verändert wird.
Ich bin komplett ratlos und hoffe, dass mir jemand von euch helfen und einen Tipp geben kann!! DANKE
function custom_meta_box_markup() {
$args = array(
'post_type' => 'offer'
);
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
wp_nonce_field(basename(__FILE__), "recrew-slideshow-meta-box-nonce");
// THIS IS THE PART THAT SEEMS TO BE RESPONSIBLE FOR THE BEHAVIOUR
while ( $my_query->have_posts() ) : $my_query->the_post();
echo '<li>';
the_title();
echo '</li>';
endwhile;
// \ THIS IS THE PART THAT SEEMS TO BE RESPONSIBLE FOR THE BEHAVIOUR
}
wp_reset_query();
}
function add_custom_meta_box() {
add_meta_box("recrew-slideshow-meta-box", "Recrew Slideshow", "custom_meta_box_markup", "page", "side", "high", null);
}
add_action("add_meta_boxes", "add_custom_meta_box");
Alles anzeigen