WordPress自定义字段日期,显示带有自定义日期的帖子>当前按升序排列

发布于 2024-12-27 10:03:23 字数 760 浏览 3 评论 0原文

如果“releasedate”>,如何通过自定义字段对帖子进行排序“当前日期”,但按升序排列。基本上只显示日期从今天开始但按升序排列的帖子。目前我有

<?php 
$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query();
$wp_query->query('showposts=10&post_type=movies&meta_key=releasedate_value&orderby=releasedate_value&order=ASC');
if (have_posts()) : while (have_posts()) : the_post(); 
$currentdate = date("Y-m-d",mktime(0,0,0,date("m"),date("d"),date("Y")));
?>


<?php if ($releasedate >  $currentdate) {?>

“我的内容/帖子在这里”

<?php } ?>
<?php endwhile; ?>
<?php endif; ?>

现在一切正常,除了当它的ASC而不是DSC时,不会显示任何帖子,因为wordpress首先获取帖子并删除不早于当前日期的帖子,并且只允许10个帖子,因此,如果 10 篇文章的发布日期在今天之前,WordPress 会加载然后删除它们,并将所有内容留空!感谢您的帮助

How do I order post by a custom field if "releasedate" > "currentdate" but in acending order. Basically only display post with dates starting after today but in ascending order. currently i have

<?php 
$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query();
$wp_query->query('showposts=10&post_type=movies&meta_key=releasedate_value&orderby=releasedate_value&order=ASC');
if (have_posts()) : while (have_posts()) : the_post(); 
$currentdate = date("Y-m-d",mktime(0,0,0,date("m"),date("d"),date("Y")));
?>


<?php if ($releasedate >  $currentdate) {?>

"my contents/ post here"

<?php } ?>
<?php endwhile; ?>
<?php endif; ?>

now everything works except when its ASC and not DSC, no post will display because wordpress in getting the post first and the erasing the post that are not before current date and only 10 post are allowed, therefore if 10 post has a release date before today, wordpress loads then erase them after and leaves everything blank! Thank you for your help

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

寒冷纷飞旳雪 2025-01-03 10:03:23

我将日期条件放入查询本身。假设您的 WordPress 版本为 3.1 或更高版本,则可以使用 meta_query 参数。像这样的东西:

<?php
$currentdate = date("Y-m-d",mktime(0,0,0,date("m"),date("d"),date("Y")));

$wp_query = new WP_Query(  array ('showposts' => 10,
                'post_type' => 'movies',
                'meta_query'=> array(
                    array(
                      'key' => 'releasedate_value',
                      'compare' => '>',
                      'value' => $currentdate,
                      'type' => 'DATE',
                    )),
                'meta_key' => 'releasedate_value',
                'orderby' => 'meta_value',
                'order' => 'ASC'
    )
);

应该有效。

I'd put the date criteria into the query itself. Assuming you have WordPress version 3.1 or higher, you can use the meta_query parameter. Something like:

<?php
$currentdate = date("Y-m-d",mktime(0,0,0,date("m"),date("d"),date("Y")));

$wp_query = new WP_Query(  array ('showposts' => 10,
                'post_type' => 'movies',
                'meta_query'=> array(
                    array(
                      'key' => 'releasedate_value',
                      'compare' => '>',
                      'value' => $currentdate,
                      'type' => 'DATE',
                    )),
                'meta_key' => 'releasedate_value',
                'orderby' => 'meta_value',
                'order' => 'ASC'
    )
);

should work.

愿得七秒忆 2025-01-03 10:03:23

这也适用于我:

$currentdate = date("Y-m-d",mktime(0,0,0,date("m"),date("d"),date("Y")));

                                    $args =  array(
                                        'post_type' => 'event',
                                        'meta_key'  => 'date_field',
                                        'posts_per_page' => 5,
                                        'orderby' => 'meta_value',
                                        'order' => 'ASC',
                                        'meta_query' => array(
                                            array(
                                                'key' => 'date_field',
                                                'value' => $currentdate,
                                                'compare' => '>=',
                                                'type' => 'DATE'
                                            ),
                                        ),
                                    );
                                    $my_query = null;
                                    $my_query = new WP_Query($args);

This works with me too:

$currentdate = date("Y-m-d",mktime(0,0,0,date("m"),date("d"),date("Y")));

                                    $args =  array(
                                        'post_type' => 'event',
                                        'meta_key'  => 'date_field',
                                        'posts_per_page' => 5,
                                        'orderby' => 'meta_value',
                                        'order' => 'ASC',
                                        'meta_query' => array(
                                            array(
                                                'key' => 'date_field',
                                                'value' => $currentdate,
                                                'compare' => '>=',
                                                'type' => 'DATE'
                                            ),
                                        ),
                                    );
                                    $my_query = null;
                                    $my_query = new WP_Query($args);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文