query_posts () Zeigt IMMER etwas an?

OK, ich verwende posts_query (), um Posts anzuzeigen.

Das Problem ist, dass posts_query () zumindest in meinem Fall immer etwas ausgibt.

Beispielsweise:

   

Zeigt den rohen ersten Teil eines Posts an (und ohne $ more = 0 den gesamten Post).

Warum passiert es?

Ich möchte die Ausgabe selbst gestalten, aber ich kann das nicht, weil zum Beispiel:

 while ( have_posts() ) : the_post(); ?> 

Gibt:

 

MyTitle

something something something something something

something something something something something

Solutions Collecting From Web of "query_posts () Zeigt IMMER etwas an?"

query_posts () Zeigt IMMER etwas an?

Nein, tut es zumindest nicht für mich, ich habe den Code ausprobiert, den du in meinem Child-Theme gepostet hast und konnte das beschriebene Problem nicht reproduzieren.

Erstens habe ich versucht …

 while ( have_posts() ) : the_post(); ?>  < ?php endwhile ?> 

..und habe nichts, also habe ich dann getestet ..

 < ?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; query_posts("posts_per_page=1&paged=$paged"); global $more; $more = 0; while ( have_posts() ) : the_post(); ?> 

< ?php the_title();?>

< ?php the_content( __( '') ); ?>

< ?php endwhile ?>

..die produziert ..

 

Post title

post content

Kein verirrter Absatz des Inhalts.

Wenn ich das Problem erraten müsste, würde ich sagen, dass bei der Arbeit ein schlecht kodierter Filter oder Shortcode vorliegt. Der einfachste Weg, die Ursache zu isolieren (wie bei jeder WP-Fehlerbehebung), wäre, Plugins zu deaktivieren und / oder das Thema zu wechseln und einzugrenzen, was das Problem verursacht.

AKTUALISIEREN:
Verwenden Sie ein neues WP_Query Objekt anstelle von query_posts und das sollte das Problem beheben.

 function posts_shortcode( $atts ) { extract( shortcode_atts( array( ), $atts ) ); global $more, $wp_query; $args = array( 'posts_per_page' => 1, 'paged' => get_query_var('paged') ); $q = new WP_Query; $q->query( $args ); // Backup $wp_query $backup = $wp_query; // Fill $wp_query with the custom query $wp_query = $q; // Do the loop while ( $q->have_posts() ) : $q->the_post(); $more = 0; ?> 

< ?php the_title();?>

< ?php the_content( __( '') ); ?>

< ?php endwhile; // Output page navi wp_pagenavi(); // Restore $wp_query $wp_query = $backup; // Restores wp_query global and also resets postdata(may not be needed, but won't hurt) wp_reset_query(); } add_shortcode('posts', 'posts_shortcode');

the_post() Gleiche, wenn Sie the_post() ohne While- Schleife verwenden? Tritt das Gleiche auf, wenn Sie den benutzerdefinierten Aufruf query_posts() nicht verwenden?

Das scheint furchtbar wie ein schlecht codierter Filter irgendwo in der Kette zu sein, aber es ist schwer, den Ort daraus zu erraten.

Sie könnten versuchen, diesen Code zu verwenden, um die Namen von Filtern zu vercasting, wenn sie ausgeführt werden, und zu versuchen, genau festzustellen, was sie verursachen könnte:

 add_filter('all','dump_name',10,0); function dump_name() { var_dump(current_filter()); }