Изучаем теги шаблонов: часть четвертая

Изучаем теги шаблонов: часть первая
Изучаем теги шаблонов: часть вторая
Изучаем теги шаблонов: часть третья
Изучаем теги шаблонов: часть четвертая
Изучаем теги шаблонов: часть пятая
Изучаем теги шаблонов: часть шестая

В сегодняшней, пятой по счету статье из этой серии, мы рады представить вам очередную «порцию» тегов шаблонов. Сегодня, как и в предыдущей части, мы рассмотрим теги, связанные с комментированием.

Получаем и выводим ссылку на раздел комментариев: get_comments_link() и comments_link()

Эти теги возвращают и выводят ссылку на раздел комментариев.

Параметры

comments_link() не принимает параметров, а get_comments_link() принимает один параметр:

  • $post_ID (integer или object, необязательный): ID записи. По умолчанию: текущая запись.

Применение

<?php

comments_link();

?>

Получаем и выводим список комментариев: wp_list_comments()

Этот популярный тег выводит список комментариев к указанной записи.

Параметры

Этот тег шаблона принимает два параметра:

  • $args (array. необязательный): Массив включает в себя следующие элементы:

— ‘walker‘ (object): экземпляр класса Walker для перечисления комментариев. По умолчанию: NULL;
— ‘max_depth‘ (integer): максимальная глубина комментариев;
— ‘style‘ (string): в каком формате будет выведен список комментариев (‘ul‘ или ‘ol‘). По умолчанию: ‘ul‘;
— ‘callback‘ (string): callback-функция, которая будет использоваться при выводе списка. По умолчанию: NULL;
— ‘end-callback‘ (string): callback-функция, которая будет использоваться для каждого комментария. По умолчанию: NULL;
— ‘type‘ (string): Тип комментариев, которые нужно вывести в список. (‘all‘, ‘comment‘, ‘pingback‘, ‘trackback‘ или ‘pings‘). По умолчанию: ‘all‘;
— ‘page‘ (integer): ID страницы, для которой выводятся комментарии;
— ‘per_page‘ (integer): количество комментариев, выводимых на страницу;
— ‘avatar_size‘ (integer): Размер аватара. (По умолчанию: 32);
— ‘reverse_top_level‘ (string): Сортировка выводимых комментариев (‘desc‘ или ‘asc‘). По умолчанию: NULL;
— ‘reverse_children‘ (bool): Раскрывать дочерние комментарии или нет. По умолчанию: false;
— ‘format‘ (string): Как форматировать список комментариев. По умолчанию: ‘html5‘, если поддерживается HTML5, или ‘xhtml‘;
— ‘short_ping‘ (bool): Выводить ли пингтрэки. По умолчанию: FALSE;
— ‘echo‘ (bool): Выводить список (TRUE) или возвращать (FALSE). По умолчанию: TRUE.

  • $comments (array, необязательный): Массив объектов комментариев. По умолчанию: Все комментарии для текущей записи.

Применение

<?php

$args = array(

    // Используем неупорядоченный список для комментариев.
    'style' => 'ol',

    // Получаем только комментарии.
    'type' => 'comments',

    // Произвольное количество комментариев на страницу.
    'per_page' => 15,

    // Уменьшаем размер аватара.
    'avatar_size' => 16,

    // Принудительное использование HTML5-разметки.
    'format' => 'html5',

    // Возвращаем результат вместо вывода.
    'echo' => 0
);

$comments_list = wp_list_comments( $args );

?>

Получаем и выводим количество комментариев: get_comments_number() и comments_number()

Эти теги получают и выводят количество комментариев к записи.

Параметры

get_comments_number() принимает лишь один параметр:

  • post_ID (integer или Object, необязательный): ID записи. По умолчанию: текущая запись.

comments_number() принимает три параметра:

  • $zero (string, необязательный): Текст, который отображается при отсутствии комментариев. По умолчанию: ‘Нет комментариев‘;
  • $one (string, необязательный): Текст, который отображается при наличии только одного комментария. По умолчанию: ‘1 комментарий‘;
  • $more (string, необязательный): Текст, который отображается при наличии нескольких комментариев. По умолчанию: ‘Комментариев: %‘.

Применение

<?php

// Выводим количество комментариев к определенной записи.
comments_number(11);

// Выводим количество комментариев к текущей записи.
$comments_num = get_comments_number( '0', '1', '%' );

?>

Получаем и выводим автоматические классы для каждого комментария: get_comment_class() и comment_class()

Эти теги позволяют получать и выводить классы CSS для оформления комментариев.

Параметры

get_comment_class() принимает 3 параметра:

  • $class (string или array, необязательный): имена классов, которые нужно добавить. По умолчанию: »;
  • $comment_ID (integer, необязательный): ID необходимого комментария. По умолчанию: ID текущего комментария;
  • $post_ID (integer или Object, необязательный): ID записи. По умолчанию: текущая запись.

comment_class() принимает четыре параметра:

  • $class (string или array, необязательный): имена классов, которые нужно добавить. По умолчанию: »;
  • $comment_ID (integer, необязательный): ID необходимого комментария. По умолчанию: ID текущего комментария;
  • $post_ID (integer или Object, необязательный): ID записи. По умолчанию: текущая запись;
  • $echo (bool, необязательный): Вывести (TRUE) или возвратить (FALSE) результат.

По умолчанию: TRUE.

Применение

<?php

// Выводим классы комментариев с дополнительным классом. 
comment_class( 'mytheme-comment' );

// Получаем определенный комментарий из определенной записи.
$special_comment_classes = get_comment_class( ' ', 225, 98 );

?>

Выводим форму комментариев: comment_form()

Этот тег выводит на экран код готовой формы комментария.

Параметры

Этот тег шаблона принимает два параметра:

  • $args (array, необязательный): Массив включает в себя следующие аргументы:

— ‘fields‘ (array): HTML-код для стандартных полей комментариев (‘author‘, ‘email‘ и ‘url‘). По умолчанию: все три;
— ‘comment_field‘ (string): HTML-код для элемента комментария TEXTAREA;
— ‘must_log_in‘ (string): HTML-код сообщения «нужно зарегистрироваться, чтобы оставлять комментарии»;
— ‘logged_in_as‘ (string): HTML-код сообщения для зарегистрированных пользователей;
— ‘comment_notes_before‘ (string): HTML-код для отображения перед формой комментариев;
— ‘comment_notes_after‘ (string): HTML-код после формы комментариев;
— ‘id_form‘ (string): ID элемента формы комментариев FORM;
— ‘id_submit‘ (string): ID кнопки подтверждения;
— ‘name_submit‘ (строка запроса): Значение атрибута Name кнопки подтверждения;
— ‘title_reply‘ (string): Заголовок кнопки «Написать комментарий«;
— ‘title_reply_to‘ (string): Заголовок кнопки «Написать ответ %s«;
— ‘cancel_reply_link‘ (string): Текст ссылки «Отменить«;
— ‘label_submit‘ (string): Текст кнопки «Написать комментарий«;
— ‘format‘ (array): Формат формы комментариев (‘xhtml‘ или ‘html5‘). По умолчанию — ‘xhtml‘.

  • $post_ID (integer или Object, необязательный): ID записи. По умолчанию: текущая запись.

Применение

<?php

$args = array(
    'fields' => array( 'author', 'email' ),
    'must_log_in' => __( 'Вам нужно авторизоваться, чтобы оставить комментарий.', 'translation-domain' ),
    'label_submit' => __( 'Добавить', 'translation-domain' ),
    'format' => 'html5'
);

comment_form( $args );

?>

Выводим заголовок формы комментариев: comment_form_title()

Тег выводит заголовок формы комментариев.

Параметры

Этот тег шаблона принимает три параметра:

  • $noreplytext (string, необязательный): Текст ссылки для написания обычного комментария. По умолчанию: ‘Написать комментарий‘;
  • $replytext (string, необязательный): Текст ссылки, которая позволит ответить на уже существующий комментарий. По умолчанию: ‘Ответить на комментарий %s‘;
  • $linktoparent (bool, необязательный): Привязать имя пользователя к его комментарию. По умолчанию: TRUE.

Применение

<?php

comment_form_title( __( 'Написать ответ', 'translation-domain' ), __( 'Ответить', 'translation-domain') . ' %s', false );

?>

Получаем и выводим ссылку «ответить на комментарий»: get_comment_reply_link() и comment_reply_link()

Тег позволяет возвращать и выводить ссылку для ответа на определенный комментарий.

Параметры

Оба тега шаблонов принимают три параметра:

  • args (array, необязательный): Массив включает в себя следующие аргументы:

— ‘add_below‘ (string, необязательный): первая часть селектора используется для определения комментария, на который будет даваться ответ. Полученное значение затем используется как первый параметр addComment.moveForm(), отраженной в $add_below-$comment->comment_ID. По умолчанию: ‘comment‘;
— ‘respond_id‘ (string): селектор определяет соответствующий комментарий. Полученный результат вносится как третий параметр в addComment.moveForm(), и привязывается к URL в виде хэша. По умолчанию: ‘respond‘;
— ‘reply_text‘ (string): Текст ссылки ‘Ответить‘. По умолчанию: ‘Ответить‘;
— ‘login_text‘ (string): Текст ссылки для ответа без авторизации. По умолчанию: ‘Войти, чтобы ответить‘;
— ‘depth‘ (integer): глубина нового комментария – значение должно быть выше 0, и ниже значения опции ‘thread_comments_depth‘, выставленного в Настройки > Обсуждение. По умолчанию: 0;
— ‘before‘ (string): Текст или HTML-код, который будет перед ссылкой. По умолчанию: »;
— ‘after‘ (string): Текст или HTML-код, который будет показан после ссылки. По умолчанию: »..

  • $comment_ID (integer, необязательный): ID необходимого комментария. По умолчанию: ID текущего комментария;
  • post_ID (integer или Object, необязательный): ID записи. По умолчанию: текущая запись.

Применение

<?php

// Выводим ссылку со стандартными настройками.
comment_reply_link();

// Получаем ссылку с произвольным оформлением.
$args = array(
    'reply_text' => __( 'Написать комментарий', 'translation-domain' ),
    'login_text' => __( 'Войти чтобы высказаться', 'translation-domain' ),
    'after' => '<hr class="comment-reply-after" />'
);

$comment_reply_link = get_comment_reply_link( $args );

?>

Получаем и выводим скрытые поля “ответить на комментарий”: get_comment_id_fields() и comment_id_fields()

Тег выводит или возвращают скрытые поля для формы комментирования.

Параметры

Оба тега шаблонов принимают лишь один параметр:

  • $post_ID integer или Object, необязательный): ID записи. По умолчанию: текущая запись.

Применение

<?php

// Выводим скрытые поля.
comment_id_fields();

// Получаем скрытые поля из формы “ответить на комментарий” в определенной записи.
$some_post_ID = get_the_ID_of_some_post( 'this-is-not-a-real-function-BTW' );
$reply_hidden_fields = get_comment_id_fields( $some_post_ID );

?>

Получаем и выводим ссылку “Отменить комментарий”: get_cancel_comment_reply_link() и cancel_comment_reply_link()

Теги возвращают и выводят ссылку “Отменить комментарий”, которую можно использовать в форме комментариев.

Параметры

Оба тега шаблонов принимают лишь один параметр:

  • $text (string, необязательный): Текст, который будет отображаться в ссылке для отмены комментария. По умолчанию: «Нажмите здесь, чтобы отменить комментарий«.

Применение

<?php

// Выводим ссылку.
cancel_comment_reply_link();

// Получаем ссылку.
$cancel_reply_link = get_cancel_comment_reply_link( __( 'Отменить...', 'translation-domain' ) );

?>

Получаем и выводим ссылку на следующую страницу комментариев: get_next_comments_link() и next_comments_link()

Теги возвращают или выводят ссылку на следующую страницу комментариев.

Параметры

Оба тега шаблонов принимают два параметра:

  • $label (string, необязательный): Текст ссылки. По умолчанию: »;
  • $max_page (integer, необязательный): Максимальное количество страниц. По умолчанию: 0.

Применение

<?php

// Получаем ссылку “Следующие комментарии” со стандартными значениями.
$next_comments_link = get_next_comments_link();

// Выводим ссылку с произвольным текстом.
next_comments_link( __( 'Посмотреть свежие комментарии', 'translation-domain' ) );

?>

Получаем и выводим ссылку «Предыдущие комментарии»: get_previous_comments_link() и previous_comments_link()

Теги получают или выводят ссылку “Предыдущие комментарии” в разделе комментариев.

Параметры

Оба тега шаблонов принимают лишь один параметр:

  • $label (string, необязательный): Текст ссылки. По умолчанию: ‘« Предыдущие комментарии‘.

Применение

<?php

// Получаем ссылку “Предыдущие комментарии” со стандартными значениями.
$previous_comments_link = get_previous_comments_link();

// Выводим ссылку с произвольным текстом.
previous_comments_link( __( 'Предыдущие комментарии', 'translation-domain' ) );

?>

Получаем ссылки пагинации (постраничного вывода) комментариев: paginate_comments_links()

Тег возвращает ссылки на страницы комментариев.

Параметры

Этот тег шаблона принимает лишь один параметр:

  • $args (array, необязательный): Массив включает в себя следующие аргументы:

— ‘base‘ (string): базовый URL для создания ссылок постраничного вывода;
— ‘format‘ (string): Аргумент, который будет использоваться для замены номеров страниц;
— ‘total‘ (integer): Общее количество страниц;
— ‘current‘ (integer): Номер текущей страницы;
— ‘echo‘ (bool): Выводить ссылки или нет. По умолчанию: TRUE;
— ‘add_fragment‘ (string): Текст, который предшествует URL страниц. По умолчанию: ‘#comments‘.

Применение

<?php

// Выводим ссылки пагинации со стандартными аргументами.
paginate_comments_links();

// Получаем ссылки пагинации и удаляем фрагменты #comments из ссылок.
$args = array(
    'echo' => false,
    'add_fragment' => ''
);

$comment_pagination = paginate_comments_links( $args );

?>

Получаем и выводим ссылку «Редактировать комментарий»: get_edit_comment_link() и edit_comment_link()

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

Параметры

get_edit_comment_link() принимает лишь один параметр:

  • comment_ID (integer, необязательный): ID необходимого комментария. По умолчанию: ID текущего комментария.

edit_comment_link() принимает три параметра:

  • $text (string, необязательный): Текст ссылки. По умолчанию: «Редактировать«;
  • $before (string, необязательный): Текст или HTML-код, который будет перед ссылкой. По умолчанию: »;
  • $after (string, необязательный): Текст или HTML-код, который будет показан после ссылки. По умолчанию: ».

Применение

<?php

// Получаем ссылку «Редактировать комментарий» для текущего комментария. 
$edit_comment_link = get_edit_comment_link();

// Получаем ссылку «Редактировать комментарий» для определенного комментария.
$edit_comment_link = get_edit_comment_link( 133 );

// Выводим ссылку «Редактировать комментарий» для текущего комментария.
edit_comment_link( __( 'Редактировать', 'translation-domain' ), '<span class="edit-comment-link">', '</span>' );

?>

Получаем и выводим «рассылку новых комментариев»: get_post_comments_feed_link() и post_comments_feed_link()

Теги получают или выводят ссылку на RSS-рассылку комментариев.

Параметры

get_post_comments_feed_link() принимает два параметра:

  • $post_ID (integer, необязательный): ID записи. По умолчанию: текущая запись;
  • $feed (string, необязательный): Тип рассылки. По умолчанию: Тип рассылки по умолчанию.

post_comments_feed_link() принимает три параметра:

  • $link_text (string, необязательный): Текст ссылки. По умолчанию: «Рассылка комментариев«;
  • $post_ID (integer, необязательный): ID записи. По умолчанию: текущая запись;
  • $feed (string, необязательный): Тип рассылки. По умолчанию: Тип рассылки по умолчанию.

Применение

<?php

// Получаем ссылку на комментарии к определенной записи для atom-рассылки.
$comments_link_for_feeds = get_post_comments_feed_link( $post->ID, 'atom' );

// Выводим ссылку на комментарии к записи для стандартной рассылки.
post_comments_feed_link();

?>

Выводим ссылку на комментарии во всплывающем окне: comments_popup_link()

Тег выводит ссылку на всплывающее окно с комментариями.

Параметры

Этот тег шаблона принимает пять параметров:

  • $zero (string, необязательный): Текст, который отображается при отсутствии комментариев. По умолчанию: ‘Нет комментариев‘;
  • $one (string, необязательный): Текст, который отображается при наличии только одного комментария. По умолчанию: ‘1 комментарий‘;
  • $more (string, необязательный): Текст, который отображается при наличии нескольких комментариев. По умолчанию: ‘Комментариев: %‘;
  • $css_class (string, необязательный): Дополнительные CSS-классы, которые необходимо добавить. По умолчанию: »;
  • $none (string, необязательный): Текст, который отображается при выключенных комментариях. По умолчанию: ‘Комментирование отключено’.

Применение

<?php

comments_popup_link( 
    __( 'Ни одного мнения', 'translation-domain' ),
    __( 'Всего одно мнение', 'translation-domain' ),
    '% человек ' . __( 'Высказалось', 'translation-domain' ),
    'my-comments-popup-link', 
    __( 'Вы не можете оставить мнение!', 'translation-domain' )
);

?>

Выводим скрипт всплывающего окна для комментариев: comments_popup_script()

Тег создает и выводит скрипт всплывающего окна для комментариев.

Параметры

Этот тег шаблона принимает три параметра:

  • $width (integer, необязательный): Ширина всплывающего окна. По умолчанию: 400;
  • $height (integer, необязательный): Высота всплывающего окна. По умолчанию: 400;
  • $file (string, необязательный): URL, который будет отображаться в адресной строке всплывающего окна. По умолчанию: URL главной страницы.

Применение

<?php

comments_popup_script(600, 300);

?>

В завершение

Надеемся, вам понравилась четвертая «порция» тегов шаблонов. В ближайшее время мы опубликуем следующие статьи из этой серии.

Если у вас возникли какие-либо вопросы или замечания, обязательно напишите об этом в комментариях. И если вам понравилась наша статья, не забудьте поделиться ей с друзьями!

Перевод статьи “The Tuts+ Guide to Template Tags: Fourth Batch” был подготовлен дружной командой проекта Сайтостроение от А до Я.