get_post_gallery_images () возвращает пустой массив - PullRequest
1 голос
/ 29 сентября 2019

У меня есть собственный плагин WordPress, который регистрирует некоторые шорткоды.Я хочу добавить функцию для отображения слайдера swiper.js с помощью шорткода, но я не могу достичь этой области.Если я прикреплю галерею к странице или к сообщению, она не будет отображаться, массив get_post_gallery_images(), возвращаемый в моем классе функций, всегда будет пустым.Как я могу это исправить?Как я могу удалить только шорткод галереи WordPress по умолчанию, чтобы использовать собственный код с прикрепленными изображениями?

Код метода моего плагина

public function imgSlider( $attr, $content )
  {
    global $post;

    $a = shortcode_atts(array(
      'pagination' => null,
      'buttons' => null,
      'scrollbar' => null
    ), $attr);

    $images = get_post_gallery_images( $post );
    var_dump($images);
    $slider = '';

    if( $images ){
      $slider = '<div class="swiper-container">';
      $slider .= '<div class="swiper-wrapper">';
      foreach( $images as $img ){
        $slider .= '<img class="img-fluid w-100" src="'. $img .'">';
      }
      $slider .= '</div>';
      if( $a['pagination'] === true ){
        $slider .= '<div class="swiper-pagination"></div>';
      }
      if( $a['buttons'] === true ){
        $slider .= '<div class="swiper-button-prev"></div>';
        $slider .= '<div class="swiper-button-next"></div>';
      }
      $slider .= '</div>';
    }
    // This will return true
    //var_dump(has_shortcode( $post->post_content, 'gallery' )); 
    return $slider;
  }

Это содержимое созданной мной тестовой страницы.отладить мой код и проверить, работают ли пользовательские шорткоды. Примечание: я заметил, что при добавлении шорткодов в HTML добавляются пустой тег <p> и тег <br>, возможно ли их удалить?

[bs-container type="container-fluid"]
[bs-col type="6" mobile="display"]Lorem ipsum demo shortcode[/bs-col]
[bs-col type="6" mobile="hide"]<img class="img-fluid w-100" src="https://localhost/wordpress/wp-content/uploads/2019/09/ig_testing_account_2.jpeg">[/bs-col]
[bs-col type="12" mobile="hide"]
[bs-slider pagination="true" buttons="true" scrollbar="false"][gallery link="none" size="large" ids="37,38,25"][/bs-slider]
[/bs-col]
[/bs-container]
[bs-parallax img="https://images.unsplash.com/photo-1569017436947-e1e377435a13?crop=entropy&cs=tinysrgb&fit=crop&fm=jpg&h=600&ixlib=rb-1.2.1&q=80&w=800" is_section="false" overlay="false"][/bs-parallax]
...