从get_the_content中显示中删除URL

时间:2019-04-01 20:41:40

标签: wordpress wordpress-theming

我正在确定主题,然后遇到一个问题,其中YouTube网址显示在我用作摘录的内容中。我目前有一个条件,如果没有摘录,它将显示精简的内容。这是我的模板代码:

<?php 
  if ( ! has_excerpt() ) { 
    echo wp_trim_words(wp_strip_all_tags( get_the_content(), 40 )) ;} 
  else { 
    the_excerpt(); 
  } 
?>

在此特定示例中,https://imgur.com/EdLdInW

该帖子的第一个标题是YouTube Gutenberg块,显示了修剪和剥离的the_content。它拉出了我不想要的YouTube URL。

当前在具有Understrap框架的Wordpress 5.1.1上。任何帮助都会很棒!

1 个答案:

答案 0 :(得分:0)

您可以使用preg_replace删除URL:

$string = "The Third Culture: The Frontline of Global Thinking http://someurl.com/;via @edge";
$regex = "@(https?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-]*(\?\S+)?[^\.\s])?)?)@";
echo preg_replace($regex, ' ', $string);

因此,您的情况将是这样:

<?php 
if ( ! has_excerpt() ) { 
   $content = wp_trim_words(wp_strip_all_tags( get_the_content(), 40 )) ; 
   $regex = "@(https?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-]*(\?\S+)?[^\.\s])?)?)@";
   echo preg_replace($regex, ' ', $content);
}else { 
   the_excerpt(); 
} 
?>