Leon45 08.02.2023 15:54

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

Здравствуйте!

Я пытаюсь создать пользовательский виджет в WordPress, который будет отображать последние комментарии на моем сайте. У меня возникли проблемы с его настройкой и я не могу понять, что я делаю не так. Можете ли вы помочь мне с этим?

Вот пример кода, который я использую:


function custom_comments_widget() {
    $args = array(
        'number' => 5,
        'status' => 'approve',
        'post_status' => 'publish',
    );
    
    $comments = get_comments($args);
    
    if($comments) {
        echo '';
    }
    else {
        echo 'No comments found.';
    }
}

Я запустил эту функцию, но виджет не отображается на моей боковой панели. Я не уверен, что правильно использую функцию get_comments и правильно отображаю комментарии. Что я делаю не так? Как мне настроить этот виджет правильно?

Буду благодарен за любую помощь и совет!

Ответы:

activeDoc42 08.02.2023 15:59

Проблема, которую ты испытываешь с пользовательским виджетом WordPress, связана с неправильным использованием функции get_comments и неправильным отображением комментариев.

Давай разберемся, что именно идет не так и как настроить этот виджет правильно.

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


function custom_comments_widget() {
    $args = array(
        'number' => 5,
        'status' => 'approve',
        'post_status' => 'publish',
    );

    $comments = get_comments($args);

    if($comments) {
        echo '<ul>';
        foreach($comments as $comment) {
            echo '<li>';
            echo '<a href="' . get_permalink($comment->comment_post_ID) . '#comment-' . $comment->comment_ID . '">' . get_the_title($comment->comment_post_ID) . '</a>';
            echo '</li>';
        }
        echo '</ul>';
    }
    else {
        echo 'No comments found.';
    }
}

Теперь, когда мы исправили ошибку, связанную с ID поста, давай посмотрим, как настроить виджет на боковой панели.

1. В первую очередь, тебе нужно зарегистрировать виджет, используя функцию register_widget. Пример кода:


function custom_comments_widget_init() {
    register_widget('Custom_Comments_Widget');
}
add_action('widgets_init', 'custom_comments_widget_init');

2. Далее, нужно создать класс виджета Custom_Comments_Widget. Вот пример кода:


class Custom_Comments_Widget extends WP_Widget {
    function __construct() {
        parent::__construct(
            'custom_comments_widget',
            'Custom Comments Widget',
            array('description' => 'Displays the latest comments on your site.')
        );
    }

    function widget($args, $instance) {
        echo $args['before_widget'];
        echo $args['before_title'] . 'Latest Comments' . $args['after_title'];
        custom_comments_widget();
        echo $args['after_widget'];
    }
}

3. Теперь, когда у тебя есть зарегистрированный виджет и созданный класс виджета, виджет должен появиться на боковой панели. Убедись, что ты добавил виджет "Последние комментарии" на боковую панель в админ-панели WordPress.

Надеюсь, это поможет тебе настроить виджет правильно. Если у тебя возникнут еще вопросы, не стесняйся задавать!

evgeniya20 08.02.2023 16:05
Проверьте правильность написания функции и использование аргументов в функции get_comments.
aleks24On 08.02.2023 16:28
Проверьте правильность использования функции get_comments и проверьте, правильно ли вы отображаете комментарии.

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