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


add a variable inside a wordpress array function

我创建了一个函数,该函数添加了一个管理面板区域,其中包含一个作为变量提取的字段。

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

我发现了这个伟大的代码:

    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, 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;
}