如果变量不是数组,如何过滤变量的一部分?

时间:2018-11-22 作者:RobbTe

我想知道如果没有数组,是否可以过滤掉变量的一部分。或者我只能替换整个代码,或者向其中添加代码?

假设我有以下代码:

    $output  = \'<select>\';
    $output .= \'<option value="option 1">Option 1</option>\';
    $output .= \'<option value="Filter out">Don\'t show this option</option>\';
    $output .= \'<option value="option 2">Option 2</option>\';
    $output .= \'</select>\';

    $output = apply_filters( \'my_filter\', $output );

return $output;
有没有办法过滤掉第二个选项,而不重写过滤器中的整个代码?

谢谢

SOLUTION

我的解决方案是str_replace.

1 个回复
SO网友:middlelady

文档很好地解释了这个主题,让我们看看这里https://developer.wordpress.org/reference/functions/apply_filters/.

在您的具体情况下my_filter 无论发生什么,即使它没有价值,也会被应用。仅在以下情况下应用过滤器is_array() 您可以将特定指令直接插入过滤器,如:

function example_callback( $output ) {
    if(is_array($output)){
        //do something and replace part of the string with str_replace()
    }
    return $output;
}
add_filter( \'my_filter\', \'example_callback\', 10, 1 );
关于str_replace() php函数阅读更多信息http://php.net/manual/en/function.str-replace.php.

结束

相关推荐

Locating Global Variables

我现在是我们公司网站的管理员,使用Wordpress。我们想更改主页上的一些内容,但不幸的是,我们想要更改的项目似乎是内置于主题中的。我想更改图像滑块的文本覆盖。我已经找到了显示文本的HTML,但实际文本是从PHP变量返回的。有人知道如何追踪变量吗?它必须是由原网站设计师制作的。基本上,我感兴趣的是:<h1><? echo the_title();?></h1> 正在提取信息。这必须是从一系列标题中提取出来的,因为它们会随着幻灯片的变化而变化。我需要更改数组中的一个项目