Wordpress get_posts()获取下一批帖子

时间:2014-12-16 10:30:30

标签: php wordpress

我正在使用get_posts()函数从自定义帖子类型中获取一批帖子,按ID排序,修改这些帖子然后获取下一批。

我有以下代码:

<?php
require_once('wp-load.php');
$temp_list_of_products_array        = get_posts( array('post_type' => 'sale', 'numberposts' => 10 ) );
$temp_list_of_products_array_length = count( $temp_list_of_products_array );

for ($xt = 0; $xt < $temp_list_of_products_array_length; $xt++) {
    $temp_product_id                    = $temp_list_of_products_array[$xt]->ID;
    $temp_product_untranslated_field    = get_post_meta($temp_product_id, 'wpcf-product-details', true);
    $temp_product_translated_field      = get_post_meta($temp_product_id, 'wpcf-translated-product-details', true);
    $temp_product_description_language  = 'en';

    if ($temp_product_translated_field == null) {
        $temp_product_translated_contents   = google_translate_text($temp_product_untranslated_field, $temp_product_description_language);
        update_post_meta($temp_product_id, 'wpcf-translated-product-details', $temp_product_translated_contents);
    } 
    echo $temp_product_id;
}
?>

这很好但问题是它只加载按日期排序的前10个帖子。

我的问题是,如何在没有用户激活分页呼叫的情况下获得下一批10个帖子?

由于

2 个答案:

答案 0 :(得分:0)

首先获取当前页面

$paged=($query_vars['paged']!=0 ? $query_vars['paged'] : 1);

现在计算偏移值

$numberposts=10;
$ofdset=$numberposts* ($paged - 1) ;

添加您的代码

$temp_list_of_products_array = get_posts( array('post_type' => 'sale', 'numberposts' => 10 ,'offset'=>$offset) );
$temp_list_of_products_array_length = count( $temp_list_of_products_array );

for ($xt = 0; $xt < $temp_list_of_products_array_length; $xt++) {
    $temp_product_id                    = $temp_list_of_products_array[$xt]->ID;
    $temp_product_untranslated_field    = get_post_meta($temp_product_id, 'wpcf-product-details', true);
    $temp_product_translated_field      = get_post_meta($temp_product_id, 'wpcf-translated-product-details', true);
    $temp_product_description_language  = 'en';

    if ($temp_product_translated_field == null) {
        $temp_product_translated_contents   = google_translate_text($temp_product_untranslated_field, $temp_product_description_language);
        update_post_meta($temp_product_id, 'wpcf-translated-product-details', $temp_product_translated_contents);
    } 
    echo $temp_product_id;
}

在循环底部添加分页代码 使用get_posts函数检查这个wordpress分页 https://wordpress.stackexchange.com/questions/137100/using-pagination-with-get-posts-on-page-type

答案 1 :(得分:0)

您只需使用paged参数:

$current_page = 1; // <-- Modify this to your needs!

$temp_list_of_products_array = get_posts( 
    array( 
        'paged'          => $current_page, 
        'post_type'      => 'sale', 
        'posts_per_page' => 10 
    ) 
);

用于分页