【发布时间】:2016-11-30 10:33:21
【问题描述】:
我的网站主页中有视频类别。有一个名为 video-category 的分类和名为 video-list 的自定义帖子类型。
我需要显示分类类别,以便将其发布的日期从最新到最旧。所以这意味着如果我今天发布一个视频帖子,那么当前帖子类别必须在最前面,因为它的帖子有最新的日期,其余的应该从最新到最旧。
我不知道我需要从哪里开始。开始获取最新的帖子,不知道接下来是什么。
我目前所拥有的是用下面的代码查看最多的显示它们
<ul class="catLists">
<?php
$video_args = array(
'hide_empty' => true,
'fields' => 'all',
'hierarchical' => true,
'child_of' => 0,
'get' => '',
'name__like' => '',
'pad_counts' => false,
'taxonomy' => 'video-category',
'cache_domain' => 'core'
);
$v_terms = get_terms('video-category', $video_args);
$coount = 1;
global $wpdb;
foreach($v_terms as $key => $term) {
$count_views = $wpdb->get_results($wpdb->prepare("
SELECT SUM(pm.meta_value) AS view_count FROM {$wpdb->postmeta} pm
LEFT JOIN {$wpdb->posts} p ON p.ID = pm.post_id
LEFT JOIN {$wpdb->term_relationships} tr ON p.ID = tr.object_id
LEFT JOIN {$wpdb->term_taxonomy} tt ON tr.term_taxonomy_id = tt.term_taxonomy_id
WHERE pm.meta_key = 'post_views_count'
AND tt.taxonomy = 'video-category'
AND tt.term_id = %d
", $term->term_id));
// Add to the category object the result
$v_terms[$key]->count_views = (!empty($count_views)) ? $count_views[0]->view_count : 0;
}
function cmp($a, $b) {
if ($a->count_views == $b->count_views) {
return 0;
}
return ($a->count_views > $b->count_views) ? -1 : 1;
}
usort($v_terms, "cmp");
foreach ($v_terms as $v_term) {
$term_link = get_term_link($v_term, 'video-category');
if($coount < 7){
?>
<li class="video_<?php echo $v_term->term_id; ?>_term" id="<?php echo $coount++ ?>">
<a href="<?php echo $term_link ;?>" id="<?php echo $v_term->term_id; ?>"><?php echo $v_term->name; ?></a>
<span class="active_tab_border"></span>
</li>
<?php }else{?>
<?php if($coount == '7') { ?>
</ul>
想要的结果是首先显示帖子发布日期最新的类别,其余的等等。
提前感谢您的帮助。
【问题讨论】:
-
是的,但是如何获取最新帖子及其类别以及新帖子何时动态更改类别顺序?
-
您能否提供一个基本示例,显示“之前和之后”或预期输入和预期结果?
-
查看我编辑的问题@mike510a