WordPress不知道我发送给管理员帖子的参数

时间:2018-02-20 作者:Amirition

我需要处理一个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
我想我只是正确地完成了每一步,但这段代码不起作用!

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

由于找不到任何具有kind 名称只有action, regionstreet 没有迹象表明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\']
        ) );
    }
}

结束

相关推荐