Wordpress:如何将add_filter添加到the_content的特殊div中

时间:2013-06-10 10:44:41

标签: php wordpress html preg-replace

我正在尝试将过滤器添加到我的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');

1 个答案:

答案 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]

就是这样。