现代部落活动帖子联系人表格7的排序动态选择/下拉

时间:2018-09-13 作者:iprobablyhavenoanswers

我在联系人表单7中有一个动态下拉/选择框,我相信它是基于以下内容:https://gist.github.com/morgyface/56474f0a37abb7d622880daf6eff6e40

我已经有一段时间没有做这个了,所以细节有点模糊,但我们直到最近才意识到订单有问题,我甚至不知道从哪里开始解决它。我记得这整件事花了我太长时间才弄明白我现在的想法,而且我已经很久没有在里面挖掘了,所以我在这里过得很艰难!

以下是修改后的代码,除了订单外,它也在工作:

add_action( \'wpcf7_init\', \'postselect2\' );
function postselect2() {
    wpcf7_add_form_tag( \'postlist\', \'custom_post_select2\', true ); //If the form-tag has a name part, set this to true.
}
function custom_post_select2( $tag ) {
    $posttype = \'tribe_events\';
    $date = new DateTime();
    $today = $date->getTimestamp();
    $args = array(
        \'post_type\'         => $posttype,
        \'post_status\'       =>  \'publish\',
        \'numberposts\'       => -1,
        \'meta_key\'          => \'_EventStartDate\',
        \'orderby\'           => \'meta_value_num\',
        \'order\'             => \'ASC\',
        \'meta_query\'        => array(
            \'relation\'          => \'AND\',
                array(
                    \'key\'           => \'_EventStartDate\',
                    \'compare\'       => \'>=\',
                    \'value\'         => $today,
                )
        )
    );
    $posts = get_posts( $args );
    $output = "<select name=\'" . $tag[\'name\'] . "\' id=\'" . $tag[\'name\'] . "\' onchange=\'document.getElementById(\\"" . $tag[\'name\'] . "\\").value=this.value;\'><option></option>";
    // if you\'ve set the name part to true in wpcf7_add_form_tag use $tag[\'name\'] instead of $posttype as the name of the select.
    foreach ( $posts as $post ) {
            $postid = $post->ID;
            $posttitle = get_the_title( $postid );
            $postslug = get_post_field( \'post_name\', $postid );
            $postdate = tribe_get_start_date($post, false, $date_format=\'m/d/y\');
        $output .= \'<option value="\' . $postdate . \'&nbsp;\' . $posttitle . \'">\' . $postdate . \'&nbsp;\' . $posttitle . \'</option>\';
    } // close foreach
    $output .= "</select>";
    return $output;
}
这里的另一个方面是,由于有一些事件是人们填写表格要求注册的,所以在“今天”之前发生的事件显然不应该出现在列表中(有效)。

下面是一个输出示例:enter image description here

这些事件在“实际事件”页面上正确显示,其中有来自“现代部落”的[主要是股票]循环,因此我相信这不是事件帖子本身的问题。

TIA获取任何提示或建议:)

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

对于任何一个遇到同样的利基问题的可怜的灵魂来说,答案都很简单,令人沮丧。我本应该使用tribe_get_events 我相信现代部落开发人员已经努力编写了这个函数。

无论如何,以下是最终的解决方案:1)在联系人表单7中添加自定义选择框,2)使用现代部落的活动日历中即将到来的活动填充该框:

// Create post dropdown function for Contact Form 7 (not required)

add_action( \'wpcf7_init\', \'postselect2\' );
    function postselect2() {
        wpcf7_add_form_tag( \'postlist\', \'custom_post_select2\', true );
    }
    function custom_post_select2( $tag ) {
    $events = tribe_get_events( array(
        \'posts_per_page\' => -1,
        \'start_date\' => date( \'Y-m-d H:i:s\' )
    ) );

    $output = "<select name=\'" . $tag[\'name\'] . "\' id=\'" . $tag[\'name\'] . "\' onchange=\'document.getElementById(\\"" . $tag[\'name\'] . "\\").value=this.value;\'> <option></option>";

    foreach ( $events as $event ) {
        $output .= \'<option value="\' . $event->EventStartDate . \'&nbsp;\' . $event->post_title . \'">\' . tribe_get_start_date( $event, true, \'n/j/Y &#64; g:ia\' ) . \'&nbsp;\' . $event->post_title . \'</option>\';
    } // close foreach
    $output .= "</select>";
    return $output;
} // close function

结束

相关推荐

WordPress页面中的动态php

我创建了一个简单的设计,用于向团队成员展示there图像,并与modal(引导程序4)链接。其显示如下: <div class=\"col-lg-4 col-sm-6 text-center mb-4\"> <img class=\"rounded-circle img-fluid d-block mx-auto\" src=\"<?php echo get_template_directory_uri(); ?>/images/bestuur/

现代部落活动帖子联系人表格7的排序动态选择/下拉 - 小码农CODE - 行之有效找到问题解决它

现代部落活动帖子联系人表格7的排序动态选择/下拉

时间:2018-09-13 作者:iprobablyhavenoanswers

我在联系人表单7中有一个动态下拉/选择框,我相信它是基于以下内容:https://gist.github.com/morgyface/56474f0a37abb7d622880daf6eff6e40

我已经有一段时间没有做这个了,所以细节有点模糊,但我们直到最近才意识到订单有问题,我甚至不知道从哪里开始解决它。我记得这整件事花了我太长时间才弄明白我现在的想法,而且我已经很久没有在里面挖掘了,所以我在这里过得很艰难!

以下是修改后的代码,除了订单外,它也在工作:

add_action( \'wpcf7_init\', \'postselect2\' );
function postselect2() {
    wpcf7_add_form_tag( \'postlist\', \'custom_post_select2\', true ); //If the form-tag has a name part, set this to true.
}
function custom_post_select2( $tag ) {
    $posttype = \'tribe_events\';
    $date = new DateTime();
    $today = $date->getTimestamp();
    $args = array(
        \'post_type\'         => $posttype,
        \'post_status\'       =>  \'publish\',
        \'numberposts\'       => -1,
        \'meta_key\'          => \'_EventStartDate\',
        \'orderby\'           => \'meta_value_num\',
        \'order\'             => \'ASC\',
        \'meta_query\'        => array(
            \'relation\'          => \'AND\',
                array(
                    \'key\'           => \'_EventStartDate\',
                    \'compare\'       => \'>=\',
                    \'value\'         => $today,
                )
        )
    );
    $posts = get_posts( $args );
    $output = "<select name=\'" . $tag[\'name\'] . "\' id=\'" . $tag[\'name\'] . "\' onchange=\'document.getElementById(\\"" . $tag[\'name\'] . "\\").value=this.value;\'><option></option>";
    // if you\'ve set the name part to true in wpcf7_add_form_tag use $tag[\'name\'] instead of $posttype as the name of the select.
    foreach ( $posts as $post ) {
            $postid = $post->ID;
            $posttitle = get_the_title( $postid );
            $postslug = get_post_field( \'post_name\', $postid );
            $postdate = tribe_get_start_date($post, false, $date_format=\'m/d/y\');
        $output .= \'<option value="\' . $postdate . \'&nbsp;\' . $posttitle . \'">\' . $postdate . \'&nbsp;\' . $posttitle . \'</option>\';
    } // close foreach
    $output .= "</select>";
    return $output;
}
这里的另一个方面是,由于有一些事件是人们填写表格要求注册的,所以在“今天”之前发生的事件显然不应该出现在列表中(有效)。

下面是一个输出示例:enter image description here

这些事件在“实际事件”页面上正确显示,其中有来自“现代部落”的[主要是股票]循环,因此我相信这不是事件帖子本身的问题。

TIA获取任何提示或建议:)

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

对于任何一个遇到同样的利基问题的可怜的灵魂来说,答案都很简单,令人沮丧。我本应该使用tribe_get_events 我相信现代部落开发人员已经努力编写了这个函数。

无论如何,以下是最终的解决方案:1)在联系人表单7中添加自定义选择框,2)使用现代部落的活动日历中即将到来的活动填充该框:

// Create post dropdown function for Contact Form 7 (not required)

add_action( \'wpcf7_init\', \'postselect2\' );
    function postselect2() {
        wpcf7_add_form_tag( \'postlist\', \'custom_post_select2\', true );
    }
    function custom_post_select2( $tag ) {
    $events = tribe_get_events( array(
        \'posts_per_page\' => -1,
        \'start_date\' => date( \'Y-m-d H:i:s\' )
    ) );

    $output = "<select name=\'" . $tag[\'name\'] . "\' id=\'" . $tag[\'name\'] . "\' onchange=\'document.getElementById(\\"" . $tag[\'name\'] . "\\").value=this.value;\'> <option></option>";

    foreach ( $events as $event ) {
        $output .= \'<option value="\' . $event->EventStartDate . \'&nbsp;\' . $event->post_title . \'">\' . tribe_get_start_date( $event, true, \'n/j/Y &#64; g:ia\' ) . \'&nbsp;\' . $event->post_title . \'</option>\';
    } // close foreach
    $output .= "</select>";
    return $output;
} // close function

相关推荐

如何将Java脚本添加到Custom-Page.php模板?

如何将javascript添加到自定义页面。php模板?如何使从w3schools ajax教程获得的以下javascript在自定义页面上工作。php模板?任何帮助都将不胜感激。工作javascript包含在以下HTML中:<!DOCTYPE html> <html> <style> table,th,td { border : 1px solid black; border-collapse: collapse;&#x