在wordpress数组函数中添加一个变量

时间:2014-09-13 21:49:13

标签: php wordpress

我创建了一个功能,可以添加一个管理面板区域,其中包含一个被拉为变量的字段。

这个想法是允许我的客户决定从搜索结果中排除哪些类别。

我找到了这个很棒的代码:

    add_filter( 'pre_get_posts' , 'search_exc_cats' );
function search_exc_cats( $query ) {
    if( $query->is_admin )
        return $query;
    if( $query->is_search ) {
        $query->set( 'category__not_in' , array(1,64) ); // Example multiple cats
    }
    return $query;
}

什么行得很好,并添加了我的代码,以便在其上方提供可靠的代码:

$omr_tracking_code = get_option('omr_tracking_code');

但是当我尝试将变量$omr_tracking_code放在"数组"中时,它不起作用。

这是我的完整代码,它不起作用:

    $omr_tracking_code = get_option('omr_tracking_code');
    add_filter( 'pre_get_posts' , 'search_exc_cats' );
function search_exc_cats( $query ) {
    if( $query->is_admin )
        return $query;
    if( $query->is_search ) {
        $query->set( 'category__not_in' , array($omr_tracking_code) ); // Example multiple cats
    }
    return $query;
}

1 个答案:

答案 0 :(得分:0)

根据我们的评论讨论,您似乎回到了以下选项:

"1, 64"

然后你正在尝试:

array ("1, 64")

哪个不起作用。

你需要这样做:

array("1", "64")

因此,首先使用选项1尝试下面的代码。如果这不起作用,则option2也会将值转换为整数(可能需要也可能不需要):

array(1, 64)

请尝试以下两个选项之一:

function search_exc_cats( $query ) {
    if( $query->is_admin )
        return $query;
    if( $query->is_search ) {
        $option1 = explode(',', $omr_tracking_code);
        $option2 = array_map('intval', explode(',', $omr_tracking_code));
        $query->set( 'category__not_in' , $option1 );
    }
    return $query;
}