分页 WordPress $wpdb 查询?

2023-12-15

我有这样的疑问:

    <?php
    $query= "SELECT wposts.* FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta WHERE wposts.ID = wpostmeta.post_id AND wpostmeta.meta_key = 'votes' AND wposts.post_status = 'publish' AND wposts.post_type = 'post' ORDER BY CAST(wpostmeta.meta_value AS SIGNED) DESC LIMIT 10";
    $posts = $wpdb->get_results($query, OBJECT);
    if ($posts ) : foreach ($posts as $post):
    setup_postdata($post);
    ?>
    // Post here 
    <?php endforeach; endif; ?>
    <div class="pagination">
        <?php wp_pagenavi(); ?>
    </div>

我使用它是因为 Wordpress 无法正确排序使用数字的元值,无论如何......一切正常,除了我不知道如何使用 wp_pagenavi 对其进行分页。

任何想法?


感谢@jaziel matoso,

下面的代码有效:

global $wp_query; 

$query = "
    SELECT wposts.* 
    FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta 
    WHERE wposts.ID = wpostmeta.post_id
        AND wpostmeta.meta_key = 'votes'
        AND wposts.post_status = 'publish'
        AND wposts.post_type = 'post'
    ORDER BY CAST(wpostmeta.meta_value AS SIGNED) DESC";

$total_record = count($wpdb->get_results($query, ARRAY_A));

$paged          = get_query_var('paged') ? get_query_var('paged') : 1;
$post_per_page  = get_option('posts_per_page');
$offset         = ($paged - 1)*$post_per_page;
$max_num_pages  = ceil($total_record/ $post_per_page);

$wp_query->found_posts   = $total_record;

// number of pages 
$wp_query->max_num_pages = $max_num_pages;

$limit_query = " LIMIT ".$post_per_page." OFFSET ".$offset; 

$result      = $wpdb->get_results($query.$limit_query,OBJECT);// return OBJECT

if($result):
foreach ($result as $post):
    setup_postdata($post); ?>

    <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
    <p><?php the_content(); ?></p>

<?php endforeach; ?>
    <div class="navigation"><?php wp_pagenavi(); ?></div>
    <?php
endif;

Done!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

分页 WordPress $wpdb 查询? 的相关文章

随机推荐