wordpress循環可以使用的最大數量是多少?wordpress循環可以使用的最大數量是多少?
可以顯示'posts_per_page'=> -1的帖子數量?
我得到了1317+帖子,我想對它們進行排序,但只要我嘗試去做超過10,000頁的任何內容('posts_per_page'=> 10000),我就會得到一個空白頁。
謝謝提前
wordpress循環可以使用的最大數量是多少?wordpress循環可以使用的最大數量是多少?
可以顯示'posts_per_page'=> -1的帖子數量?
我得到了1317+帖子,我想對它們進行排序,但只要我嘗試去做超過10,000頁的任何內容('posts_per_page'=> 10000),我就會得到一個空白頁。
謝謝提前
看起來像你用完你的php內存。
我能想到的兩個選項:
嘗試在你的php.ini中添加一些內存。它不會真正解決您的問題,因爲您的帳戶金額將會增長,並且您將再次遇到同樣的問題。 但同時它可以給你一些時間,以真正的解決方案:)
真正的解決方案,你可以使用WPDB對象直接與WP DataBase工作。 通過這種方式,您可以限制從DB獲得的帖子數量,因此您不需要一次將所有對象存儲在內存中。
在那個例子中,我顯示了很多帖子的類別。我遍歷數據庫,獲得100後每次迭代(使用LIMIT),直到我得到的所有帖子:
$sql = "
SELECT *
FROM $wpdb->posts
LEFT JOIN $wpdb->term_relationships ON($wpdb->posts.ID = $wpdb->term_relationships.object_id)
LEFT JOIN $wpdb->term_taxonomy ON($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)
LEFT JOIN $wpdb->terms ON($wpdb->term_taxonomy.term_id = $wpdb->terms.term_id)
WHERE post_status = 'publish'
AND $wpdb->terms.name = '".$cat_name."'
AND $wpdb->term_taxonomy.taxonomy = 'category'
AND post_type = 'post'
AND post_title not regexp '".$excluded_posts."'
ORDER BY post_date DESC LIMIT 100 OFFSET $offset
";
$posts_in_category = $wpdb->get_results($sql, OBJECT);
?>
<!-- Some HTML here -->
<?php while ($posts_in_category): ?>
<?php if ($posts_in_category): ?>
<?php global $post; ?>
<?php foreach ($posts_in_category as $post): ?>
<?php setup_postdata($post); ?>
<!-- Here you can pot your post template -->
<?php endforeach; ?>
<?php else: ?>
<p><?php _e('No posts matched your criteria.', 'wp-print'); ?></p>
<?php endif; ?>
<?php $offset += 100;
$sql = "
SELECT *
FROM $wpdb->posts
LEFT JOIN $wpdb->term_relationships ON($wpdb->posts.ID = $wpdb->term_relationships.object_id)
LEFT JOIN $wpdb->term_taxonomy ON($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)
LEFT JOIN $wpdb->terms ON($wpdb->term_taxonomy.term_id = $wpdb->terms.term_id)
WHERE post_status = 'publish'
AND $wpdb->terms.name = '".$cat_name."'
AND $wpdb->term_taxonomy.taxonomy = 'category'
AND post_type = 'post'
AND post_title not regexp '".$excluded_posts."'
ORDER BY post_date DESC LIMIT 100 OFFSET $offset
";
$posts_in_category = $wpdb->get_results($sql, OBJECT);
?>
<?php endwhile;?>
好運:)
非常感謝 –
許多因素,包括你的機器,你有值取決於在你的php.ini文件中 –