Шорткод в WordPress

130
29 сентября 2019, 13:50

Есть кусок кода (html+php) который выводит посты из определенного типа постов в виде карусели, мне нужно чтобы этот блок можно было выводить в определенном месте, указанном в админке. Пробовал создать шорткод, но никак не получается. Может кто подскажет как правильно создать шорткод чтобы выводились посты?

Вот собственно код:

<?php $otziv = new WP_Query( array( 'post_type' => 'otziv', 'posts_per_page' => 100 ) ); ?>
  <div class="jcarousel-wrapper">
  <div class="jcarousel">
  <ul><?php while ( $otziv->have_posts() ) : $otziv->the_post(); ?>
  <li> 
  <div class="otziv-img"><?php the_post_thumbnail(array( 300,300)); ?></div>
  <div class="otziv-name"><?php the_title(); ?></div>
  <div class="otziv-text"><?php the_content(); ?></div>
  </li><?php endwhile; ?>
  </ul>
  </div>
  <a href="#" class="jcarousel-control-prev"></a>
  <a href="#" class="jcarousel-control-next"></a>
  </p>
  </div>               
<?php wp_reset_postdata(); ?> 
Answer 1

Вот пример рабочего шорткода, в который можно передать параметры:

add_shortcode( 'my-shortcode', 'my_custom_shortcode' );
function my_custom_shortcode() {
    ob_start();
    $query = new WP_Query( array(
        'post_type' => 'otziv',
        'posts_per_page' => -1,
    ) );
    if ( $query->have_posts() ) { ?>
        <div class="jcarousel-wrapper">
          <div class="jcarousel">
              <ul>
                <?php while ( $query->have_posts() ) : $query->the_post();
                    $output = '';
                    $output .= '<li>';
                    $output .= '<div class="otziv-img">' . the_post_thumbnail() . '</div>';
                    $output .= '<div class="otziv-name">' . the_title() . '</div>';
                    $output .= '<div class="otziv-text">' . the_excerpt() . '</div>';
                    $output .= '</li>';
                    echo $output; ?>
                <?php endwhile; ?>
              </ul>
          </div>
          <a href="#" class="jcarousel-control-prev"></a>
          <a href="#" class="jcarousel-control-next"></a>
        </div>
    <?php return ob_get_clean();;
    }
}
// Use shortcode [my-shortcode]

Вот и попробуйте разобраться, как это работает

Вот кодекс WordPress с инфой, как создавать шорткоды

READ ALSO
не могу понять синтаксис ajax кода

не могу понять синтаксис ajax кода

Не могу разобраться что за синтаксисВот есть такой кусок кода:

152
Обновление свойств при использовании ICollectionView

Обновление свойств при использовании ICollectionView

К Grid привязана ObservableCollectionСтолбцы Grid привязаны к свойствам объектов этой коллекции

145
Unity: чтение json с android

Unity: чтение json с android

К сожалению, достаточно заезженный вопрос, который у меня не работаетДелаю для своей игры переводчик по оффициальному тутору юнити, но раз...

124
winform picturebox не отображает JPEG byte из SQL

winform picturebox не отображает JPEG byte из SQL

этот код отображает фото из датабейз Nortwind из таблицы Categories

128