Как можно добавить скрипт ответа на комментарии только на определённой странице?

Вопрос или проблема

Я пытаюсь подключить скрипт comment-reply.js только на определенной странице, но в моем коде что-то не так. Может, кто-то подскажет, в чем дело?

<?php if ( is_singular('1740') && (!is_home() || !is_front_page() || !is_single()) && comments_open() && get_option('thread_comments') ) wp_enqueue_script( 'comment-reply' ); ?>

Я думаю, что условный тег comments_open() не нужен. Он проверяет, разрешены ли комментарии для этой конкретной страницы.

Попробуйте использовать следующий код

<?php
if ( is_single('1740') ||
( !is_home() || !is_front_page() || !is_single() ) ) {
    wp_enqueue_script( 'comment-reply' );
} ?>

comments_open() требует идентификатор записи для конкретных записей, чтобы проверить, разрешены ли комментарии или нет. Так что избегайте использования этого условия.

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

В вашем коде выше также отсутствовала фигурная скобка для условия if.

Надеюсь, это поможет ответить на ваш вопрос.

Попробуйте добавить следующий код и дайте знать

if ( is_singular('1740') && comments_open() && get_option( 'thread_comments' ) ) {
    wp_enqueue_script( 'comment-reply' );
}

Ответ или решение

Чтобы подключить скрипт comment-reply.js только на определенной странице в WordPress, нужно использовать условные теги и функцию wp_enqueue_script в правильном синтаксисе. Давайте рассмотрим, как это сделать правильно и устранить любые ошибки в вашем коде.

Правильный подход

Ваш первоначальный код содержит несколько проблем, которые можно исправить. Вот исправленная версия кода, которая корректно проверяет, является ли текущая страница конкретным постом (в вашем случае с ID 1740) и открыты ли комментарии:

function custom_enqueue_comment_reply() {
    if ( is_single(1740) && comments_open() && get_option('thread_comments') ) {
        wp_enqueue_script('comment-reply');
    }
}
add_action('wp_enqueue_scripts', 'custom_enqueue_comment_reply');

Объяснение кода:

  1. Функция custom_enqueue_comment_reply: Определяем функцию, в которой выполняется логика подключения скрипта.

  2. Условие is_single(1740): Проверяет, является ли текущая страница постом с ID 1740. Это гарантирует, что скрипт будет подключен только на этой конкретной странице.

  3. Проверка comments_open(): Убеждается, что комментарии включены для данной записи, прежде чем подключать скрипт.

  4. Функция get_option('thread_comments'): Проверяет, включены ли вложенные комментарии на сайте.

  5. Использование wp_enqueue_script('comment-reply'): Подключает скрипт для обработки ответов на комментарии.

  6. Добавление функции в хуки: Использование add_action('wp_enqueue_scripts', 'custom_enqueue_comment_reply') позволяет подключить скрипт в нужное время в процессе загрузки страницы.

Заключение

Таким образом, ваш код будет работать корректно и подключит comment-reply.js только на нужной странице. Не забывайте, что использование функций проверки, таких как comments_open() и get_option('thread_comments'), важно для обеспечения корректного поведения системы комментариев. Если у вас есть дополнительные вопросы или если вам нужна помощь с другим функционалом, пожалуйста, дайте знать!

Оцените материал
Добавить комментарий

Капча загружается...