Как создать и настроить пользовательский виджет для отображения случайного поста в Wordpress?
Здравствуйте! Нужна помощь с созданием и настройкой пользовательского виджета в WordPress для отображения случайного поста. Я хотел бы, чтобы на сайте каждый раз, когда страница обновляется, отображался случайный пост из моей базы данных. Я уже нашел несколько решений, но они не работают должным образом.
Вот пример кода, с которым я столкнулся:
<?php
function random_post_widget() {
$args = array(
'post_type' => 'post',
'orderby' => 'rand',
'posts_per_page' => 1,
'post_status' => 'publish'
);
$random_post = new WP_Query($args);
if ($random_post->have_posts()) {
while ($random_post->have_posts()) {
$random_post->the_post();
// Вывод содержимого поста
echo "<h3>" . get_the_title() . "</h3>";
echo "<p>" . get_the_content() . "</p>";
}
}
wp_reset_postdata();
}
function register_random_post_widget() {
register_widget('Random_Post_Widget');
}
add_action('widgets_init', 'register_random_post_widget');
class Random_Post_Widget extends WP_Widget {
function __construct() {
parent::__construct(
'random_post_widget',
__('Random Post Widget', 'text_domain'),
array('description' => __('Display a random post', 'text_domain'))
);
}
public function widget($args, $instance) {
echo $args['before_widget'];
echo $args['before_title'] . $instance['title'] . $args['after_title'];
random_post_widget();
echo $args['after_widget'];
}
}
?>
Проблема заключается в том, что виджет не отображается на сайте после его добавления в сайдбар. Что я делаю неправильно? Как мне настроить пользовательский виджет для отображения случайного поста в WordPress? Буду благодарен за любую помощь!
Ответы:
Вам необходимо проверить, был ли правильно указан ID сайдбара при добавлении виджета в функции register_widget().