php - Wordpress 事件 Orderby Meta 生效日期

标签 php wordpress plugins

我在获取参数数组以按 Wordpress 中的日期对事件列表进行排序时遇到了一些麻烦。我在 Stack Overflow 和其他地方找到了几个建议的解决方案,但经过大量反复试验,这些解决方案似乎都不起作用。

没什么特别的,应该比这容易很多。也许它更容易,我只是想多了?任何帮助是极大的赞赏。

我在使用插件 http://www.advancedcustomfields.com 的帖子中有一个自定义日期字段, 数据库中的字段名称为“event_date”。

我尝试了以下各种形式:

$args = array(
     'post_status'       => 'publish',
     'meta_key'          => 'event_date',
     'orderby'           => 'meta_value_num',
     'order'             => 'DESC',
     'posts_per_page'    => 6,
     'paged'             => $paged,
     'post__not_in'      => $exclude_array
);

$temp = $wp_query;
$wp_query = null;
$wp_query = new WP_Query($args);

$default_excerpt_length = 250;

和:
$args = array(
    'post_status'       => 'publish',
    'meta_key'          => 'event_date',
    'meta_value_num'    => time(),
    'meta_compare'      => '>=',
    'orderby'           => 'meta_value_num',
    'order'             => 'DESC',
    'posts_per_page'    => 6,
    'paged'             => $paged,
    'post__not_in'      => $exclude_array
);

$temp = $wp_query;
$wp_query = null;
$wp_query = new WP_Query($args);

$default_excerpt_length = 250;

和:
$today = date('Y-m-d');

query_posts(array(
    'post_type'         => 'events',
    'posts_per_page'    => 6,
    'paged'             => $paged,
    'meta_key'          => 'event_date',
    'orderby'           => 'meta_value',
    'order'             => 'DESC',
    'meta_query' => array(
        array(
        'key'        => 'event_date',
        'meta-value' => $value,
        'value'      => $today,
        'compare'    => '>=',
        'type'       => 'CHAR'
        )
    )
));

最佳答案

这最终导致了我需要的解决方案:http://www.advancedcustomfields.com/resources/field-types/date-picker/

我最终通过该网址将高级自定义字段设置更改为 yymmdd。

这是我用来查询帖子的内容:

$args = array(
  'post_status'       => 'publish',
  'posts_per_page'    => 6,
  'paged'             => $paged,
  'meta_key'          => 'event_date',
  'orderby'           => 'meta_value_num',
  'order'             => 'ASC'
);

这是我用来调整页面上日期的视觉输出的:
<?php
$source = get_field('event_date');
$date = new DateTime($source);
echo $date->format('F j, Y');
?>

关于php - Wordpress 事件 Orderby Meta 生效日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24045179/

相关文章:

mysql - 更新到 WordPress 4.8.2 后出现 SQL 语法错误

javascript - jQuery 插件 : Do stuff to matched elements

plugins - 我应该使用哪个 emma-maven-plugin?

php - 互联网速度对 PHP/MySQL 执行的影响

php - 如何发出多个http调用请求(Nodejs)

php - 检索附件 Sendgrid 入站解析

php - 如何优化我的 xml 输出以缩短数据传输时间?

jquery - 如何在 DIV 标签上使用 jquery 验证插件

php - 错误 : Namespace declaration statement has to be the very first statement or after any declare call in the script

php - Laravel 5 和奇怪的错误 : curly braces on back