我正在尝试将过滤器添加到我的wordpress内容的特殊div
确定我的插件代码现在会影响所有帖子内容,但我需要的是仅将其应用于特殊的 div class =“game_req”而不是其他divs ex。 div class =“how_to_play”
我的帖子结构:
<div>
..........
<div class="game_req"> <!-- i need to apply filter to only this div -->
- ball : is a round ..........
- key : is what we need to ..........
- caw : is an animal ..........
</div>
<div class="how_to_play">
1- use the key to open .......
2- use ball to ........
3- use caw to .........
</div>
<div class="sss">
.... key .......
.... ball to ........
.... caw .........
</div>
..........
</div>
我的插件过滤器:
function myReplace_function($content){
$patterns = array(
'/\bball\b/',
'/\bkey\b/',
'/\bcaw\b/'
);
$replacements = array(
'ball ( <img src="smallImgs/ball.png" alt="ball"/> )',
'key ( <img src="smallImgs/key.png" alt="key"/> )',
'caw ( <img src="smallImgs/caw.png" alt="caw"/> )'
);
return preg_replace($patterns,$replacements,$content);
}
add_filter('the_content','myReplace_function');
答案 0 :(得分:1)
因为没有人回答我的问题,所以我决定尝试很多方法来解决我自己的问题
最后解决方案是:
我不应该使用add_filter,而是必须使用add_shortcode 仅更改
function myReplace_function($content){
带
function myReplace_function($attrs,$content=none){
还添加任何特定代码作为短代码ex。 my_shortcode
代替the_content
所以我的功能应该是这样的
function myReplace_function($attrs,$content=none){
$patterns = array(
'/\bball\b/',
'/\bkey\b/',
'/\bcaw\b/'
);
$replacements = array(
'ball ( <img src="smallImgs/ball.png" alt="ball"/> )',
'key ( <img src="smallImgs/key.png" alt="key"/> )',
'caw ( <img src="smallImgs/caw.png" alt="caw"/> )'
);
return preg_replace($patterns,$replacements,$content);
}
add_shortcode('my_shortcode','myReplace_function');
最后,我可以通过包装帖子内容[my_shortcode]...[/my_shortcode]
所以,如果我将其应用于我的问题示例,它将如下所示:
[my_shortcode]<div class="game_req"> <!-- i need to apply filter to only this div -->
- ball : is a round ..........
- key : is what we need to ..........
- caw : is an animal ..........
</div>[/my_shortcode]
就是这样。