Wordpress functions.php - если условие убивает содержимое других сообщений - PullRequest
0 голосов
/ 30 апреля 2018

Итак, я получил этот код, который я пытаюсь адаптировать к своим потребностям. Это должно и делает обертку вокруг необходимого <img> tags. Но когда я добавляю «if (is_page...)", все остальные сайты больше не имеют контента. Я очень растерялся, когда это происходит, потому что код не должен выполняться или делать что-либо, когда оператор if не выполняется.

function breezer_addDivToImage( $content ) {
if ( is_page_template('single.php') ) {
   // A regular expression of what to look for.
   $pattern = '/(<img([^>]*)>)/i';
   // What to replace it with. $1 refers to the content in the first 'capture group', in parentheses above
   $replacement = '<div class="myphoto">$1</div>';

   // run preg_replace() on the $content
   $content = preg_replace( $pattern, $replacement, $content );

   // return the processed content
   return $content;
}
}

add_filter( 'the_content', 'breezer_addDivToImage' );
/* Place custom code above this line. */
?>

Вот так я отображаю контент на странице

<!--S3 show if dynamic page (blogposts)-->
<?php } else if (is_page() == false) {
 if(have_posts()) :
    while(have_posts())  : the_post();
      if ( has_post_thumbnail() ) {
       <img class="responsive-img" src="<?php the_post_thumbnail_url(); ?>">
      <?php } ?>
      <h2><?php the_title(); ?></h2>
      <?php the_content();
        endwhile;
        else : ?>
        <h3></h3>
        <p></p>
 <?php endif;
} ?>
<!--S3 end "show if dynamic page"-->

1 Ответ

0 голосов
/ 30 апреля 2018

вы фильтруете контент всех страниц и постов с помощью этого хука и возвращаете контент, только если условие истинно.

Поместите просто else {return $ content} в вашу функцию breezer_addDivToImage.

function breezer_addDivToImage( $content ) {
  if ( is_page_template('single.php') ) {
  // A regular expression of what to look for.
  $pattern = '/(<img([^>]*)>)/i';
  // What to replace it with. $1 refers to the content in the first 'capture group', in parentheses above
  $replacement = '<div class="myphoto">$1</div>';

  // run preg_replace() on the $content
  $content = preg_replace( $pattern, $replacement, $content );

  // return the processed content
  return $content;
 }
 else {
  return $content;
 }
}
add_filter( 'the_content', 'breezer_addDivToImage' );
...