替换子字符串中的短码

时间:2014-06-19 作者:davidcondrey

我创建了这两个函数,用于在内容的第一段和除第一段以外的所有内容之间进行切换,因此当用户选择“更多”时,它会平滑地滑出文章,而不会替换已显示为摘录的第一段。

然而,如果文本中有一个短代码,它将显示为短代码语法,而不是正确显示。我理解它为什么不显示,但我想替换文本中的任何短代码,所以只显示为文本,而不是括号中的短代码语法。

function get_first_paragraph(){
    global $post;

    $str = wpautop( str_replace( \'src="http://\', \'src="https://\', get_the_content() ));
    $str = substr( $str, 0, strpos( $str, \'</p>\' ) + 4 );
    $str = strip_tags($str, \'<a><strong><em>\');

    return \'<p>\' . $str . \'</p>\';
}
function get_the_post(){
    global $post;
    $str = wpautop( str_replace( \'src="http://\', \'src="https://\', get_the_content() ));
    $str = substr( $str, (strpos( $str, \'</p>\')));
    return $str;
}

1 个回复
SO网友:eyoung100

检查$str 具有get_shortcode_regex(). 如果$match 返回,您需要分析$str 具有do_shortcode() 然后返回,否则返回false继续。

  1. GetShortCodeRegEx
  2. DoShortCode

UPDATE

睡觉后,在研究回答你的评论时,has_shortcode() 应替换为get_shortcode_regex(), 这是我在上面的原文中所做的。

结束

相关推荐

如何在WordPress中执行外部PHP文件/函数?

在我的设置中,有一个由标题和内容组成的常规网站(都是从位于domain.com/includes/) 和一个基于子目录的Wordpress博客(domain.com/blog/).我想包括域。com/包括/标题。主要Wordpress皮肤上的php。我试过了require_once, include, 指定ABSPATH 在wp-config, 还有其他各种技巧,但都不适合我。打印页眉。php内容到Wordpress皮肤是至关重要的,在我的工作流程中没有任何妥协。如果您能给我一些建议,告诉我如何让这个脚本