Vla*_*d.P 1 php mysql wordpress pagination wpdb
我有这个问题:
<?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>
Run Code Online (Sandbox Code Playgroud)
我正在使用这个,因为Wordpress无法正确排序使用数字的meta_values,无论如何...一切正常,但我不知道如何使用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;
Run Code Online (Sandbox Code Playgroud)
完成!
| 归档时间: |
|
| 查看次数: |
6443 次 |
| 最近记录: |