【发布时间】:2014-01-20 17:56:19
【问题描述】:
我根据 HERE.
找到的优秀代码为基于 Wordpress 的博客编写了自定义存档显示基本上,它的作用:
但我需要找到一种方法,从存档中过滤掉属于不应可存档类别的某些帖子。例如,如果类别“Misc. Ideas”包含并非真正帖子的条目,则博客的所有者不希望它们在帖子存档中可用。
我一直在寻找,但找不到适合我的东西。我认为 THIS 源代码中的某些内容可能会对我有所帮助,但我正在测试一些东西,但无法找到适合我的东西。所以我转向你们。也许你有一个想法......
我现在的 PHP 代码非常简单。显然,问题是在查询本身中过滤掉帖子,但我似乎找不到适合我的查询。
为了满足特定需求,我对其进行了加/减小调整,基本上是从第一个来源获得的代码:
global $wpdb;
$limit = 0;
if( is_date() ) {
$year_now = get_the_time('Y');
} else {
$year_now = date('Y');
}
$year_prev = null;
$months = $wpdb->get_results("SELECT DISTINCT MONTH( post_date ) AS month , YEAR( post_date ) AS year, COUNT( id ) as post_count FROM $wpdb->posts WHERE post_status = 'publish' and post_date <= now( ) and post_type = 'post' GROUP BY month , year ORDER BY post_date DESC");
foreach($months as $month) :
$year_current = $month->year;
if ($year_current != $year_prev){
if ($year_prev != null){
// Do nothing
}
/* BREAK PHP HERE FOR SOME HTML */
<li class="archive-year"><a href="<?php bloginfo('url') ?>/<?php echo $month->year; ?>/"><?php echo $month->year; ?></a></li>
/* BACK ON REGULAR PHP */
}
if($year_current == $year_now) {
/* BREAK PHP HERE FOR SOME HTML */
<li class="archive-month"><a href="<?php bloginfo('url') ?>/<?php echo $month->year; ?>/<?php echo date("m", mktime(0, 0, 0, $month->month, 1, $month->year)) ?>"><span class="archive-month"><?php echo date_i18n("F", mktime(0, 0, 0, $month->month, 1, $month->year)) ?></span></a></li>
/* BACK ON REGULAR PHP */
}
$year_prev = $year_current;
endforeach;
【问题讨论】:
标签: php sql wordpress select archive