当前位置: 首页 > 知识库问答 >
问题:

VisualComposer发布网格自定义查询今天日期

关飞翔
2023-03-14

我使用视觉作曲家由http://vc.wpbakery.com/在我的wordpress网站。我的问题在帖子网格的自定义查询中。

基本上,我选择所有即将到来的事件(post类型事件),其中事件结束日期(自定义字段)为

我的查询字符串(未转义):

paged=1&posts_per_page=-1&offset=0&post_status=publish&ignore_sticky_posts=0&orderby=meta_value&order=DESC&post_type[event]=event&meta_key=event-end-date&meta_query[0][key]=event-end-date&meta_query[0][value]=2016-09-20&meta_query[0][compare]=>=&meta_query[0][type]=DATE

让我恼火的是今天的日期被定为:2016-09-20。现在,每当一个事件通过时,我都必须手动更新这个日期,以便该事件不再出现在即将到来的列表中。

是否有可能在wordpress查询字符串中设置像今天的日期这样的变化值?

VC只允许我插入一个查询字符串,所以我不能处理变量,除非有某种机制允许我用当前日期替换一些模板关键字。

或者有其他方法可以过滤即将发生的事件,比如使用标签、发布元值等...?

--解决--

  • 每12小时更新一次事件
  • 如果保存更新事件

功能。php

add_filter('cron_schedules', 'my_cron_schedules');
function my_cron_schedules( $schedules ) {
    $schedules['halfday'] = array(
        'interval' => 43200,
        'display' => __('halfday')
    );
    return $schedules;
}

if ( !wp_next_scheduled( 'my_halfday_event' ) ) {
    wp_schedule_event( time(), 'halfday', 'my_halfday_event' );
}
add_action('my_halfday_event', 'update_events');

function save_event( $post_id ) {
    $post_type = get_post_type( $post_id );
    if ( $post_type != 'event' ) {
        return;
    }
    update_events();
}
add_action( 'save_post', 'save_event' );

function update_events() {
    $events = get_posts( array(
        'posts_per_page' => -1,
        'post_type' => 'event'
    ) );
    foreach( $events as $event ) {
        $event_end_date = get_post_field( 'event-end-date', $event->ID );
        if ( is_wp_error( $event_end_date ) ) {
            continue;
        }
        $today = current_time('Y-m-d');
        $event_expired = $event_end_date < $today ? 'true' : 'false';
        $event_updated = current_time('Y-m-d H:i:s');
        update_post_meta($event->ID, 'event-expired', $event_expired);
        update_post_meta($event->ID, 'event-updated', $event_updated);
    }
}

新查询

paged=1&posts_per_page=-1&offset=0&post_status=publish&ignore_sticky_posts=0&orderby=meta_value&order=DESC&post_type%5Bevent%5D=event&meta_key=event-end-date&meta_query%5B0%5D%5Bkey%5D=event-expired&meta_query%5B0%5D%5Bvalue%5D=false&meta_query%5B0%5D%5Bcompare%5D=%3D&meta_query%5B0%5D%5Btype%5D=CHAR

共有1个答案

计泉
2023-03-14

不久前我遇到过同样的问题,在我的自定义查询中使用了DATE=$today,效果很好。看看这里发布的问题和解决方案:VisualComposer使用OR运算符自定义查询

 类似资料:
  • 问题内容: 我的网站的命中SQL表格名为ExternalHits。我将URL跟踪为URLx,将访问页面的日期跟踪为Datex。我每周运行一次此查询,以获取前一周的总点击数,并且每周我都必须手动更改“之间”的日期。有什么方法可以更改查询,以使“之间”的日期类似于TODAY AND TODAY-7?我只是不想不必每周手动更改日期。 问题答案:

  • 获取今天的日期(年、月、日) 用法 Your browser does not support the video tag. 案例:小闹钟 功能:2019年12月25日,播放圣诞快乐歌

  • 问题内容: 我想在表中选择所有记录,这些记录的输入日期早于2个月。 知道我该怎么做吗? 我还没有尝试过任何东西,但是我在这一点上: 问题答案: 如果您使用的是SQL Server,请尝试以下操作: 根据您的更新,它将是:

  • 问题内容: 我已经编写了一些代码来检查两个日期,即开始日期和结束日期。如果结束日期早于开始日期,则会提示您结束日期早于开始日期。 我还想添加检查开始日期是否在今天之前(今天和用户使用该应用程序的那天一样)。(下面的日期检查器代码,如果有任何影响,那么所有这些都为Android编写) 问题答案: 这有帮助吗?

  • 我想在主页中显示过去的事件。我使用视觉作曲家帖子网格自定义查询选项与当前日期进行比较,并显示少于当前日期的帖子。 我已使用此查询,但不起作用

  • 本文向大家介绍MySQL查询以选择从00:00到今天的日期,包括了MySQL查询以选择从00:00到今天的日期的使用技巧和注意事项,需要的朋友参考一下 假设当前日期是2019-09-14 8:50:10。现在,我们希望记录从00:00到2019-09-14 8:50:10。现在让我们看一个示例并创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输