如何通过the_content钩子在指定段落前添加WordPress短代码
调整短代码位置到指定段落之前的解决方案
当然可以调整!你当前的代码是把短代码追加到第4段(也就是$parags[3],因为数组从0开始计数)的内容后面,要把它放到这段之前,只需要修改赋值的顺序就行。
修改后的代码
add_filter('the_content', 'ak_the_content_filter', 10, 1); function ak_the_content_filter($content) { $parags = explode('</p>', $content); // 先判断目标段落存在,避免数组索引不存在的报错 if (isset($parags[3])) { // 把短代码放到$parags[3]内容的前面 $parags[3] = do_shortcode('[SHORTCODE HERE]') . $parags[3]; } $content_new = ''; foreach ($parags as $parag) { $content_new .= $parag; } return $content_new; }
关键说明
- 原来的代码用
$parags[3] .= do_shortcode(...),是将短代码追加到目标段落的末尾;修改后的$parags[3] = do_shortcode(...) . $parags[3],则是把短代码前置到目标段落的内容之前。 - 新增了
isset($parags[3])的判断,防止文章段落不足4段时出现数组索引未定义的错误,让代码更健壮。
内容的提问来源于stack exchange,提问作者Elichy
相关产品推荐
相关产品推荐

