按类别和日期测试帖子是否存在

时间:2013-11-11 作者:Marius

我想在循环之外检查一下,某个帖子是否存在于特定类别和特定日期。

功能get_posts() -- 如果我做对了--允许我检查特定类别中是否有帖子,但不允许测试特定日期是否有帖子。

我尝试的另一种方法是使用permalink测试特定的URL。permalink的格式为:http://www.homepage.de/yyyy/mm/dd/?cat=id. 但是,如果此URL显示帖子或消息“Nothing found”,则它仍然有效所以我无法检查404之类的URL。

现在我没有主意了?有什么帮助吗?

提前谢谢,祝你一切顺利,马吕斯

1 个回复
最合适的回答,由SO网友:Maruti Mohanty 整理而成

我更喜欢使用wp_query, 这为自定义查询提供了更大的灵活性。

因为您的要求只是检查是否有具有特定类别和日期的帖子,所以您可以编写自定义函数,并可以在任何地方使用它来检查它。

在活动主题的functions.php 文件

function check_post_cat_date( $post_type = \'post\', $category = \'uncategorized\', $published_on = \'12-31-2012\' ) {
// Use the date format as (mm-dd-yyyy) else change accordingly
$date = explode( \'-\', $published_on );
$args = array(
    \'post_type\'     => $post_type,
    \'category_name\' => $category,
    \'monthnum\'      => (int) $date[0],
    \'day\'           => (int) $date[1],
    \'year\'          => (int) $date[2],
);

$the_posts = new WP_Query( $args );

return count( $the_posts->posts );
}

如果您使用的是3.7或更高版本,则可以使用date_query

现在,您可以使用此函数检查它返回的帖子数。

您可以在任何地方使用它,如下所示:--

$post_type = \'post\';
$category = \'uncategorized\';
$published_on = \'10-3-2013\';
$user_query = check_post_cat_date( $post_type, $category, $published_on );
if ( $user_query ) {
    // Do something
    echo \'There are \' . $user_query . \'post(s) with category: \' . $category . \' published on \' . $published_on;
} else {
    // Do something else
    echo \'There are no posts with category: \' . $category . \' published on \' . $published_on;
}

结束

相关推荐

Shotcode error on functions

您好,我有一个生成错误的短代码。有人能帮忙吗?add_shortcode(\'do-action\', \'do_action_shortcode\'); function do_action_shortcode($atts, $content = \'\') {   ob_start();   do_action($content);   $out = ob_get_contents();   ob_end_clean();   return $