Php Wordpress使用基于表单参数的新WP_查询重新加载页面
我正在为一个页面做一个模板,在这个页面上我进行了一个WP查询,并以此显示查询的帖子。我想根据三个过滤器的信息更改查询和显示的帖子,首选,而不需要重新加载整个页面,但是,现在,可以从这开始。我还读到,正确的方法是使用admin-post.php,但我无法做到这一点。以下是我到目前为止的表单代码: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
<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
notecho
谢谢!,但这仍然是我在管理贴子页面上看到的显示:“数组-”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;