Удаление URL из отображения в get_the_content - PullRequest
0 голосов
/ 01 апреля 2019

Я создаю свою тему и сталкиваюсь с проблемой, когда URL-адреса 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 Гутенберга в качестве первого блока и показывает обрезанный и лишенный the_content. Он тянет URL-адрес YouTube, который мне не нужен.

В настоящее время на Wordpress 5.1.1 со структурой Understrap. Любая помощь будет отличной!

1 Ответ

0 голосов
/ 01 апреля 2019

Вы можете удалить URL, используя preg_replace:

$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(); 
} 
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...