我需要处理一个post请求admin-post
. 这是我表格的代码:
<form action="<?php echo esc_url( admin_url(\'admin-post.php\') ); ?>" method="post">
<input type="hidden" name="action" value="cat_filter">
<select id="regionSelect" name="region" >
<option value="none">choose region </option>
<option value="option2">option two</option>
<option value="option3">option three </option>
</select>
<select id="streetSelect" name="street">
<option value="none">choose street </option>
<option value="option2">option two</option>
<option value="option3">option three </option>
</select>
<button type="submit" class="button success small-12"><i class="fa fa-search"></i>SEARCH</button>
</form>
在我的
functions.php
文件中,我添加了以下代码:
add_action( \'admin_post_cat_filter\', \'cat_filter_posts\' );
add_action( \'admin_post_nopriv_cat_filter\', \'cat_filter_posts\' );
在函数文件的顶部,我包含了另一个
PHP
文件,并在该文件中编写函数来完成我的工作。此文件的第一行是:
function cat_filter_posts() {
if ($_POST[\'kind\'] !="none") {
$posts=new WP_Query(array( \'type\'=> \'post\', \'category_name\'=> $_POST[\'kind\']));
}
}
但这给了我一个错误,因为我无法识别表单值:
Notice: Undefined index: kind in /home2/address-to-file/examplefile.php
我想我只是正确地完成了每一步,但这段代码不起作用!
最合适的回答,由SO网友:obiPlabon 整理而成
由于找不到任何具有kind
名称只有action
, region
和street
没有迹象表明kind
!
注意:未定义索引:kind in/home2/khiyabou/domains/khiyaboun。ir/public\\U html/wp content/themes/khiyaboun-1/examplefile。php
因此,在这种情况下,上述错误是一个完美的错误。请像下面这样重写回调函数。希望这样行
// It\'ll work for only street
function cat_filter_posts() {
if ( isset( $_POST[\'street\'] ) && \'none\' != $_POST[\'street\'] ) {
$posts = new WP_Query( array(
\'type\' => \'post\',
\'category_name\' => $_POST[\'street\']
) );
}
}