Will man eine große Anzahl an Posts abfragen oder bearbeiten stößt man irgendwann an das PHP-Speicherlimt, da nicht alle Posts gleichzeitig im WP_Query Object geladen werden können. Mit der folgenden optimierten WP_Query-Abfrage kann man dieses Problem umgehen und tausende oder sogar zehntausende Posts abfragen:
<?php // Query vorbereiten $args=array( 'post_type' => 'my_post_type', // optional 'post_status' => 'publish', // optional 'fields' => 'ids', // nur Post-IDs laden 'nopaging' => true, // keine Pagination, alle Posts abfragen 'no_found_rows' => true, // Posts nicht zählen 'cache_results' => false, // Posts nicht im Cache ablegen 'update_post_meta_cache' => false, // Meta-Cache nicht füllen 'update_post_term_cache' => false // Term-Cache nicht füllen ); // Query durchführen $wp_query=new WP_Query($args); // Alle Posts durchgehen foreach ($wp_query->posts as $post_id) { // Post laden $post=get_post($post_id); // ... Post verarbeiten ... }