Ich habe eine benutzerdefinierte Schleife im Seitenverwaltungsbereich erstellt, um einen benutzerdefinierten Posttyp namens “Widgets” für diese Seite zu verwalten.
$ps_widget_list = get_post_meta( $post_id, 'ps_widget_list', true ); //first get the list of current widgets $active_widget_array = explode( ', ', $ps_widget_list ); //then separate those widgets into an array of active widgets // this array is for the UI. It will build a list of all the widgets // then based on the array of active widgets, will separate them into // two different arrays to be used later $widgets_array = array( 'active' => array(), 'inactive' => array() ); //get all the widgets $args = array( 'post_type' => 'ps_widgets', 'posts_per_page' => '-1' ); $the_query = new WP_Query( $args ); while ( $the_query->have_posts() ) : $the_query->the_post(); // loop through the widgets $widget_id = get_the_ID(); // if the widget's id is in the array of active widgets // mark it as active, if not mark as inactive and store to the array $key = ( in_array( $widget_id, $active_widget_array) ) ? 'active' : 'inactive'; $widgets_array[ $key ][ $widget_id ] = array( 'id' => $widget_id, 'title' => get_the_title( $widget_id ) ); endwhile; wp_reset_postdata();
Das Problem tritt auf, wenn ich versuche, einen SEO-Titel, eine Beschreibung oder Schlüsselwörter in einem SEO-Plugin hinzuzufügen. Ich habe das sowohl auf Yoast als auch auf All in One versucht. Nachdem ich verschiedene Codeabschnitte deaktiviert hatte, beschränkte ich das Problem auf diese Schleife. Ich habe auch versucht, die Variablen zu benennen, aber kein Glück. Ich nehme an, es ist ein Problem mit der Schleife aufgerufen, irgendwelche Vorschläge?
Die Schleife wurde von WP_Query auf get_posts umgeschaltet.
Ich stieß auch auf side effects
mit der Verwendung von WP_Query
in wordpress admin
.
Ich habe zwei Wp_Query in einer benutzerdefinierten Metabox verwendet, was gut funktioniert hat, aber später entdeckte ich zwei seltsame Probleme:
Nach einigen Stunden Debugging habe ich eine Lösung mit wp_reset_query();
Dies hat das Problem jedoch nicht vollständig getriggers. Trotzdem konnte das vorgestellte Bild nicht gespeichert werden. Was zum * * war falsch?
Dann kam ich auf diese Lösung. Use native PHP code
und Don't mess with WP template tags
, z.
$your_loop= new WP_Query($args);
Anstatt von
if( $your_loop->have_posts()){ while ($your_loop->have_posts()) { //the_title(); ... //WP loop template tags } }
benutze folgendes:
if( count($your_loop->posts) > 0) { foreach( $your_loop->posts as $item_post) { //$item_post->post_title // see other available using print_r($item_post) // } }