Lana35On 16.03.2023 13:53

Как создать и настроить пользовательский виджет для отображения случайной записи из определенной категории в Wordpress?

Здравствуйте! Я новичок в WordPress и столкнулась с проблемой создания и настройки пользовательского виджета для отображения случайной записи из определенной категории. Мне нужна помощь в написании соответствующего кода.

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

Можете ли вы помочь мне с этой задачей? Буду благодарна за любую помощь и пример кода!


// Функция для создания виджета
function random_post_widget_init() {
    register_widget( 'Random_Post_Widget' );
}
add_action( 'widgets_init', 'random_post_widget_init' );

// Класс виджета
class Random_Post_Widget extends WP_Widget {

    // Конструктор виджета
    function __construct() {
        parent::__construct(
            'random_post_widget',
            'Случайная запись из категории',
            array( 'description' => 'Отображает случайную запись из определенной категории' )
        );
    }

    // Вывод виджета на сайт
    public function widget( $args, $instance ) {
        $category = 'новости'; // Здесь укажите название нужной категории
        $post_args = array(
            'category_name' => $category,
            'posts_per_page' => 1,
            'orderby' => 'rand'
        );
        $random_post = new WP_Query( $post_args );

        if ( $random_post->have_posts() ) {
            while ( $random_post->have_posts() ) {
                $random_post->the_post();
                // Вывод данных случайной записи
                // ...
            }
            wp_reset_postdata();
        }
    }
}

Очень надеюсь на вашу помощь! Заранее благодарю за ответ!

Ответы:

Marina29Z 16.03.2023 14:07
Конечно, я могу помочь вам с созданием и настройкой пользовательского виджета для отображения случайной записи из определенной категории в WordPress. Для начала, вам понадобится добавить следующий код в файл functions.php вашей темы:

// Функция для создания виджета
function random_post_widget_init() {
    register_widget( 'Random_Post_Widget' );
}
add_action( 'widgets_init', 'random_post_widget_init' );

// Класс виджета
class Random_Post_Widget extends WP_Widget {

    // Конструктор виджета
    function __construct() {
        parent::__construct(
            'random_post_widget',
            'Случайная запись из категории',
            array( 'description' => 'Отображает случайную запись из определенной категории' )
        );
    }

    // Вывод виджета на сайт
    public function widget( $args, $instance ) {
        $category = 'новости'; // Здесь укажите название нужной категории
        $post_args = array(
            'category_name' => $category,
            'posts_per_page' => 1,
            'orderby' => 'rand'
        );
        $random_post = new WP_Query( $post_args );

        if ( $random_post->have_posts() ) {
            while ( $random_post->have_posts() ) {
                $random_post->the_post();
                // Вывод данных случайной записи
                // ...
            }
            wp_reset_postdata();
        }
    }
}
Если у вас уже есть файл functions.php, просто добавьте этот код в конец файла перед закрывающим тегом `?>`. После добавления кода в файл functions.php, вы сможете увидеть новый виджет "Случайная запись из категории" в разделе "Виджеты" в административной панели WordPress. Вы можете перейти к разделу "Внешний вид" -> "Виджеты" и перетащить виджет "Случайная запись из категории" в любую доступную область виджетов на вашем сайте. При настройке виджета, вам потребуется указать название категории, из которой должна быть выбрана случайная запись. В данном примере, я использовал категорию "новости". Замените это значение на нужное вам. Код виджета выбирает 1 случайную запись из указанной категории и отображает ее на сайте. Вам нужно будет добавить код, который определяет, какие данные будут отображаться в виджете. На данный момент в коде есть комментарий "Вывод данных случайной записи", в котором вы можете добавить нужный вам код для отображения заголовка, содержимого или других данных записи. Надеюсь, этот ответ и пример кода помогут вам создать и настроить виджет для отображения случайной записи из определенной категории в WordPress. Если у вас возникнут еще вопросы, буду рада помочь! С уважением, [Ваше имя]

Добавить ответ