用于消除<p>并将</p>替换为<br>的快捷代码

时间:2016-06-23 作者:B6431

我有一个过滤器,可以删除开头的p标记,并用br标记在站点范围内替换结尾的p标记。客户端希望此筛选器使用一个短代码,它们只能在站点的特定部分使用。以下代码是否可以在短代码中使用?

add_filter( \'the_content\', \'remove_p\' );
function remove_p( $content ) {
    $paragraphs = array("<p>","</p>");
    $noparagraphs = array("","<br>");
    return str_replace( $paragraphs, $noparagraphs, $content );
}
我们尝试了一系列切换wpautop的插件,但对结果不满意。提前感谢您的帮助。

1 个回复
最合适的回答,由SO网友:C C 整理而成

在remove\\u p函数中有可用的$内容,因此在该函数中只需查找特殊字符串(即“shortcode”)的存在,即可允许过滤器执行str\\u替换。例如:

   if ( false !== strpos( $content, "[p-filter]") ) {
       $paragraphs = array("<p>","</p>","[p-filter]");
       $noparagraphs = array("","<br>","");
       return str_replace( $paragraphs, $noparagraphs, $content );
   }
   else
       return $content;
只要你的客户端不想在一个POST对象中多次打开/关闭你的过滤器,这就行了。。。如果他这样做了,那么仍然可以这样做,但实施起来会更加复杂。

相关推荐

Shortcode to update user meta

我想在前端创建一个按钮,当用户单击时,值;“用户元”;更改“验证”function func_change_validate() { if (is_user_logged_in()) { $current_user = wp_get_current_user(); $new_value = \'validate\'; $updated = update_user_meta( $user_id, \'User_met