Поддержка Проблемы и решения Случайный пост в ленте, а не в виджете

  • Привет! Надеюсь, все живы-здоровы?
    Подскажите, пжл, как можно выводить случайный пост в ленте, а не в виджете? Есть сайт с муз. контентом, хочу, чтобы пользователь мог случайно выбирать тот или иной пост с музыкой. Почему не в виджете? Потому что: 1) Хочу, чтобы это было в основном контенте, а не где-то сбоку в сайдбаре. 2) С мобильных устройств не каждый долистает до виджета.

    Возможно, каким-то образом можно выводить виджеты в ленте? Я бы тогда плагин поставил.

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • выводить случайный пост в ленте

    Добавляем такой код с помощью плагина для добавления сниппетов в function.php

    function devise_rand_posts() {
    
    $args = array(
    	'post_type' => 'post',
    	'orderby'	=> 'rand',
    	'posts_per_page' => 2,
    	);
    
    $the_query = new WP_Query( $args );
    
    if ( $the_query->have_posts() ) {
    
    $string .= '<ul>';
    	while ( $the_query->have_posts() ) {
    		$the_query->the_post();
    		$string .= '<li><a href="'. get_permalink() .'">'. get_the_title() .'</a></li>';
    	}
    	$string .= '</ul>';
    	/* Восстанавливаем оригинальные Post Data */
    	wp_reset_postdata();
    } else {
    
    $string .= 'записей не найдено';
    }
    
    return $string;
    }
    
    add_shortcode('devise-random-posts','devise_rand_posts');
    add_filter('widget-text', 'do_shortcode');

    Зарегистрированный таким образом шорткод [devise-random-posts] для вывода 2 случайных записей, с помощью такой «обертки» <?php echo do_shortcode('[devise-random-posts]'); ?> вставляем в нужное место шаблона index.php дочерней темы (чтобы Ваши изменения не пропали при обновлении темы)

    Количество случайно выводимых записей можно изменить в этой строке 'posts_per_page' => 2,

    • Ответ изменён 3 года, 11 месяцев назад пользователем zoltsmaster.
    • Ответ изменён 3 года, 11 месяцев назад пользователем zoltsmaster.

    @zoltsmaster, спасибо, попробую на днях, сообщу )

    @zoltsmaster, к сожалению, не справился, не понял куда вставлять ваш код в плагине добавления снипетов(

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Тема «Случайный пост в ленте, а не в виджете» закрыта для новых ответов.