Генерировать случайные ссылки на публикации Где-нибудь в публикации


У меня есть небольшая проблема, по которой мне действительно нужна помощь:(.Итак, мне нужно создать в моем посте wordpress что-то, что я называю "Вам также может понравиться читать"! Позвольте мне рассказать вам об этом подробнее:

Например, мой пост в WordPress выглядит примерно так:

Название.

3-4 строки текста (например, введение ~ тема статьи).

Возможно, вам также понравится читать.

Остальная часть поста.

Конец.

"Вы можете также хотелось бы прочитать "содержит 2 ссылки. Я всегда генерировал эти ссылки вручную с помощью html-кода (теги ul, li, a). Поэтому мне трудно всегда генерировать эти ссылки вручную. Мне нужно каким-то образом генерировать эти ссылки случайным образом и автоматически.

enter image description here

Я гуглил 2 часа и ничего не нашел, на самом деле я нашел плагин, который может это сделать, но он не работает (без обновлений более 4 лет).... Я также нашел некоторый php-код, но ни то, ни другое не работает. Так что я действительно понятия не имею, что я мог бы сделайте следующее:(

Так вы можете мне помочь?

Спасибо

 2
Author: kraftner, 2015-03-06

1 answers

Редактировать

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


Вы можете использовать приведенный ниже код для создания списка сообщений (в вашем случае 2 случайных сообщений) вместе с заголовком. Выходные данные формируются таким образом, как указано на изображении в вашем вопросе. Этот код можно использовать в любом месте вашей темы -

my_post_list();

Функция, которая выполняет всю нижеприведенную работу, должна быть размещена в functions.php.

При желании вы можете передать функции другой заголовок списка, а также другой массив $args. Это позволяет вам настраивать область ваших случайных сообщений, ориентируясь на определенные категории или теги, выполняя поиск только в определенном диапазоне дат или только в тех сообщениях, где, например, задано какое-либо пользовательское значение данных - возможности безграничны. Проверьте класс Ссылка для WP_Query для получения дополнительной информации о том, что вы можете сделать с этими аргументами.

/**
 * Output a list of posts under a heading
 *
 * @param string $title The title to output in the list heading
 * @param array $args   The arguments for getting the required posts
 */
function my_post_list($title = 'You may also like to read:', $args = array()){

    $defaults = array(  // Set some defaults for querying the Posts
        'ignore_sticky_posts'   => true,
        'posts_per_page'        => 2,
        'post_status'           => 'publish',
        'orderby'               => 'rand'
    );
    $args = wp_parse_args($args, $defaults);    // Parse any arguments passed to this function with the defaults to create a final '$args' array
    
    $random = new WP_Query($args);  // Query the Posts
    
    if($random->have_posts()) : // Check to make sure some random Posts were returned
    
        echo '<h4>' . $title . '</h4>';
        echo '<ul>';
        
        while($random->have_posts()) : $random->the_post(); // Create a new custom Loop, and for each Post set up the postdata
    
            printf('<li id="random-post-%1$s">', get_the_ID());
            
            printf(
                '<a href="%1$s" title="%2$s">%3$s</a>',
                get_permalink(get_the_ID()),
                the_title_attribute('before=Check out \'&after=\'&echo=0'),
                get_the_title()
            );
            
            echo '</li>';
            
        endwhile;
        wp_reset_postdata();    // Reset the postdata so that the rest of your Loop will work correctly
        
        echo '</ul>';
        
    endif;
    
}
 1
Author: David Gard, 2020-06-15 08:21:38