Как создать и настроить пользовательский виджет для отображения последних комментариев в Wordpress?
Здравствуйте!
Я пытаюсь создать пользовательский виджет в WordPress, который будет отображать последние комментарии на моем сайте. У меня возникли проблемы с его настройкой и я не могу понять, что я делаю не так. Можете ли вы помочь мне с этим?
Вот пример кода, который я использую:
function custom_comments_widget() {
$args = array(
'number' => 5,
'status' => 'approve',
'post_status' => 'publish',
);
$comments = get_comments($args);
if($comments) {
echo '';
foreach($comments as $comment) {
echo '- ';
echo 'comment_post_ID) . '#comment-' . $comment->comment_ID . '">' . get_the_title($comment->comment_post_ID) . '';
echo '
';
}
echo '
';
}
else {
echo 'No comments found.';
}
}
Я запустил эту функцию, но виджет не отображается на моей боковой панели. Я не уверен, что правильно использую функцию get_comments и правильно отображаю комментарии. Что я делаю не так? Как мне настроить этот виджет правильно?
Буду благодарен за любую помощь и совет!
Ответы:
Проблема, которую ты испытываешь с пользовательским виджетом 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.
Надеюсь, это поможет тебе настроить виджет правильно. Если у тебя возникнут еще вопросы, не стесняйся задавать!