2

我正在尝试将过滤器添加到我的 wordpress 内容的特殊 div

确定我的插件代码现在将影响所有帖子内容,但我需要的是仅将其应用于特殊的div class="game_req"而不是其他 div ex。div 类= " 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');
4

1 回答 1

3

因为没有人回答我的问题,所以我决定尝试多种方法自己解决我的问题

最后的解决方案是:

我不应该使用 add_filter ,而是必须使用 add_shortcode 更改只是替换

 function myReplace_function($content){

 function myReplace_function($attrs,$content=none){

还添加任何特定代码作为简码前。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]

就这样。

于 2013-06-23T02:18:33.110 回答