Отдельная страница для комментариев к постам
В этом разделе мы создадим плагин для WordPress, который добавляет отдельную страницу для комментариев к каждому посту на вашем сайте. Новая страница с адресом .../comments/
будет создана для каждого поста и будет отображать все комментарии к нему.
Давайте начнем — создадим полноценный плагин для WordPress.
Шаги по созданию плагина
- Создайте папку для плагина с именем
comments-page
. - Внутри этой папки создайте файл
comments-page.php
. - Активируйте плагин. Либо вы можете добавить код в файл
functions.php
вашей темы.
Код плагина
init();
class Kama_Separate_Comments_Page {
static $page_title_patt = "Комментарии к %s";
function init() {
add_filter('query_vars', [$this, 'query_vars']);
add_action('init', [$this, 'add_endpoint']);
add_action('single_template', [$this, 'template_redirect']);
add_filter('get_comment_link', [$this, 'get_comment_link']);
add_filter('wp_title', [$this, 'wp_title'], 10, 1);
register_activation_hook(__FILE__, [$this, 'activate']);
register_deactivation_hook(__FILE__, [$this, 'deactivate']);
}
function query_vars($vars) {
$vars[] = 'comments';
return $vars;
}
// Добавляем страницу /comments/ ко всем постоянным ссылкам постов
function add_endpoint() {
add_rewrite_endpoint('comments', EP_PERMALINK);
}
// Шаблонный файл для постоянной ссылки /comments/
function template_redirect($templates = '') {
global $wp_query;
if (!isset($wp_query->query['comments'])) {
return $templates;
}
$templates = locate_template('comments-page-template.php', false);
if (!$templates) {
$templates = __DIR__ . '/comments-page-template.php';
}
return $templates;
}
// Исправляем постоянные ссылки комментариев
function get_comment_link($url) {
$urlparts = explode('#', $url);
return untrailingslashit($urlparts[0]) . '/comments/#' . $urlparts[1];
}
// Исправляем заголовок страницы
function wp_title($title) {
global $wp_query;
if (isset($wp_query->query['comments'])) {
$title = sprintf(self::$page_title_patt, $title);
}
return $title;
}
function activate() {
$this->add_endpoint();
flush_rewrite_rules();
}
function deactivate() {
flush_rewrite_rules();
}
}
Создание файла шаблона для комментариев
Теперь вам нужно создать файл шаблона. Этот файл будет отвечать за отображение нашей страницы с комментариями к посту. Назовите файл comments-page-template.php
и поместите его в папку плагина или в папку вашей текущей темы (родительской или дочерней).
Шаблон комментариев
Используйте следующий код, чтобы настроить шаблон для вашей темы:
Комментарии: ""
$post->ID]));
comment_form();
?>
Важно!
Теперь вам нужно зайти на страницу администратора "Постоянные ссылки". Это необходимо для сброса правил перенаправления в WordPress.
На этом всё! Отдельная страница для комментариев к постам готова. Добавьте /comments/
в конец URL текущего поста, чтобы перейти на страницу с комментариями к этому посту.