Генерировать случайные ссылки на публикации Где-нибудь в публикации
У меня есть небольшая проблема, по которой мне действительно нужна помощь:(.Итак, мне нужно создать в моем посте wordpress что-то, что я называю "Вам также может понравиться читать"! Позвольте мне рассказать вам об этом подробнее:
Например, мой пост в WordPress выглядит примерно так:
Название.
3-4 строки текста (например, введение ~ тема статьи).
Возможно, вам также понравится читать.
Остальная часть поста.
Конец.
"Вы можете также хотелось бы прочитать "содержит 2 ссылки. Я всегда генерировал эти ссылки вручную с помощью html-кода (теги ul, li, a). Поэтому мне трудно всегда генерировать эти ссылки вручную. Мне нужно каким-то образом генерировать эти ссылки случайным образом и автоматически.
Я гуглил 2 часа и ничего не нашел, на самом деле я нашел плагин, который может это сделать, но он не работает (без обновлений более 4 лет).... Я также нашел некоторый php-код, но ни то, ни другое не работает. Так что я действительно понятия не имею, что я мог бы сделайте следующее:(
Так вы можете мне помочь?
Спасибо
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;
}