Php Wordpress使用基于表单参数的新WP_查询重新加载页面

Php Wordpress使用基于表单参数的新WP_查询重新加载页面,php,wordpress,html,post,get,Php,Wordpress,Html,Post,Get,我正在为一个页面做一个模板,在这个页面上我进行了一个WP查询,并以此显示查询的帖子。我想根据三个过滤器的信息更改查询和显示的帖子,首选,而不需要重新加载整个页面,但是,现在,可以从这开始。我还读到,正确的方法是使用admin-post.php,但我无法做到这一点。以下是我到目前为止的表单代码: <form method="get" action="<?php echo esc_url( admin_url('admin-post.php') ); ?> id="talentum

我正在为一个页面做一个模板,在这个页面上我进行了一个WP查询,并以此显示查询的帖子。我想根据三个过滤器的信息更改查询和显示的帖子,首选,而不需要重新加载整个页面,但是,现在,可以从这开始。我还读到,正确的方法是使用admin-post.php,但我无法做到这一点。以下是我到目前为止的表单代码:

<form method="get" action="<?php echo esc_url( admin_url('admin-post.php') ); ?> id="talentum-search-form">
    <div class="row">
        <div class="col-xs-4">
            <select class="form-control" id="talentum-alumni-state" name="talentum-alumni-statex" onchange='document.getElementById("talentum-search-form").submit();'>
                <option>Todos los estados</option>
                <?php $tmp_alumni_state = talentum_get_custom_field_values ( 'talentum-embajadores-estado' );
                if ( !empty( $tmp_alumni_state ) ):
                    foreach ( $tmp_alumni_state as $state): ?>
                        <option><?php echo $state ?></option>
                    <?php endforeach;
                endif; ?>
            </select>
        </div>
        <div class="col-xs-4">
            <select class="form-control" id="talentum-alumni-generation" name="talentum-alumni-generationx" onchange='document.getElementById("talentum-search-form").submit();'>
                <option>Todas las generaciones</option>
                <option>1ra. generación</option>
                <option>2da. generación</option>
            </select>
        </div>
        <div class="col-xs-4">
            <input class="form-control mr-sm-2" name="talentum-alumni-name" name="talentum-alumni-namex" type="text" placeholder="Nombre" onchange='document.getElementById("talentum-search-form").submit();'>
        </div>
        <input type="hidden" name="action" value="alumni_search">
    </div></form>
现在,我只是回显变量,但它们是空的。另外,我在测试中使用了重定向,但我意识到整个重定向过程太慢,无法对同一页面应用过滤器

您能告诉我在向函数传递GET或POST参数方面有什么错误吗?另外,你能告诉我一个快速的方法来重新加载页面并保持参数是“Wordpress兼容”的吗

更新:

我看到了变量,并使用它们来符合WP_查询的参数。将查询发送回参数来源的页面的最正确方式是什么,这样页面就可以用这个新查询重新加载

这是我的疑问:

    $tmp_alumni_search_metas = [];

    if ( isset($_GET['as_nonce']) && wp_verify_nonce( $_GET['as_nonce'], 'alumni_search_') ):
        $args_custom_alumni_search  =   array(
            'posts_per_page'        =>  -1,
            'category'              =>  'Embajadores'
        );
        if ( !empty( $_GET['alumni-state'] ) && $_GET['alumni-state'] != 'Todos los estados' ):
            $safe_alumni_state = $_GET['alumni-state'];
            $tmp_alumni_search_metas['meta_alumni_state_clause'] = array(   'key'       => 'talentum-egresado-estado',
                                                                            'compare'   => '=',
                                                                            'value'     =>  $safe_alumni_state );
        endif;
        if ( !empty( $_GET['alumni-generation'] ) && $_GET['alumni-generation'] != 'Todas las generaciones' ):
            $safe_alumni_generation = $_GET['alumni-generation'];
            $tmp_alumni_search_metas['meta_alumni_generation_clause'] = array(  'key'       => 'talentum-egresado-generacion',
                                                                            'compare'   => '=',
                                                                            'value'     =>  $safe_alumni_generation );
            if ( isset( $tmp_alumni_search_metas ) ):
                $tmp_alumni_search_metas['relation'] = 'AND';
            endif;
        endif;
        $args_custom_alumni_search['meta_query'] = $tmp_alumni_search_metas;
        if ( !empty( $_GET['alumni-name'] ) ):
            $safe_alumni_name = $_GET['alumni-name'];
            $args_custom_alumni_search['s'] = $safe_alumni_generation;
        endif;
        var_dump( $args_custom_alumni_search );
    else:
        echo "¡Parámetro de seguridad incorrecto! (nonce)";
    endif;

要显示数组的内容,应使用
var\u dump()
print\r
not
echo
谢谢!,但这仍然是我在管理贴子页面上看到的显示:“数组-”var_dump起作用了!打印,没有:)所以,我提供了解决方案?部分:)“另外,你能告诉我一种快速的方法来重新加载页面并保留“符合Wordpress”的参数吗?”
    $tmp_alumni_search_metas = [];

    if ( isset($_GET['as_nonce']) && wp_verify_nonce( $_GET['as_nonce'], 'alumni_search_') ):
        $args_custom_alumni_search  =   array(
            'posts_per_page'        =>  -1,
            'category'              =>  'Embajadores'
        );
        if ( !empty( $_GET['alumni-state'] ) && $_GET['alumni-state'] != 'Todos los estados' ):
            $safe_alumni_state = $_GET['alumni-state'];
            $tmp_alumni_search_metas['meta_alumni_state_clause'] = array(   'key'       => 'talentum-egresado-estado',
                                                                            'compare'   => '=',
                                                                            'value'     =>  $safe_alumni_state );
        endif;
        if ( !empty( $_GET['alumni-generation'] ) && $_GET['alumni-generation'] != 'Todas las generaciones' ):
            $safe_alumni_generation = $_GET['alumni-generation'];
            $tmp_alumni_search_metas['meta_alumni_generation_clause'] = array(  'key'       => 'talentum-egresado-generacion',
                                                                            'compare'   => '=',
                                                                            'value'     =>  $safe_alumni_generation );
            if ( isset( $tmp_alumni_search_metas ) ):
                $tmp_alumni_search_metas['relation'] = 'AND';
            endif;
        endif;
        $args_custom_alumni_search['meta_query'] = $tmp_alumni_search_metas;
        if ( !empty( $_GET['alumni-name'] ) ):
            $safe_alumni_name = $_GET['alumni-name'];
            $args_custom_alumni_search['s'] = $safe_alumni_generation;
        endif;
        var_dump( $args_custom_alumni_search );
    else:
        echo "¡Parámetro de seguridad incorrecto! (nonce)";
    endif;