Описание
Подгружает файл шаблона комментариев (comments.php), для отображения их в постах и страницах.
Использование
<?php comments_template( $file, $separate_comments ); ?>
Параметры
По умолчанию: '/comments.php'
По умолчанию: false
Примеры
1. В некоторых случаях может понадобится подключить другой файл шаблона комментариев, для этого укажите параметр $file. В данном случае будет подключен файл: short-comments.php, вместо comments.php:
<?php comments_template( '/short-comments.php' ); ?>
На заметку
- Использует глобальную переменную (array) $comment - список комментарий текущего поста.
- Использует <a href="http://wp-kama.ru/id_178/klass-wordpress-po-rabote-s-bazoy-dannyih-wpdb-class.html">$wpdb</a>
- Использует: $withcomments - не будет пытаться получить комменты, если у поста их нет или отключены.
- Использует: $post
comments_template()
из файла: /wp-includes/comment-template.php WP 3.3.2function comments_template( $file = '/comments.php', $separate_comments = false ) {
global $wp_query, $withcomments, $post, $wpdb, $id, $comment, $user_login, $user_ID, $user_identity, $overridden_cpage;
if ( !(is_single() || is_page() || $withcomments) || empty($post) )
return;
if ( empty($file) )
$file = '/comments.php';
$req = get_option('require_name_email');
/**
* Comment author information fetched from the comment cookies.
*
* @uses wp_get_current_commenter()
*/
$commenter = wp_get_current_commenter();
/**
* The name of the current comment author escaped for use in attributes.
*/
$comment_author = $commenter['comment_author']; // Escaped by sanitize_comment_cookies()
/**
* The email address of the current comment author escaped for use in attributes.
*/
$comment_author_email = $commenter['comment_author_email']; // Escaped by sanitize_comment_cookies()
/**
* The url of the current comment author escaped for use in attributes.
*/
$comment_author_url = esc_url($commenter['comment_author_url']);
/** @todo Use API instead of SELECTs. */
if ( $user_ID) {
$comments = $wpdb->get_results($wpdb->prepare("SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d AND (comment_approved = '1' OR ( user_id = %d AND comment_approved = '0' ) ) ORDER BY comment_date_gmt", $post->ID, $user_ID));
} else if ( empty($comment_author) ) {
$comments = get_comments( array('post_id' => $post->ID, 'status' => 'approve', 'order' => 'ASC') );
} else {
$comments = $wpdb->get_results($wpdb->prepare("SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d AND ( comment_approved = '1' OR ( comment_author = %s AND comment_author_email = %s AND comment_approved = '0' ) ) ORDER BY comment_date_gmt", $post->ID, wp_specialchars_decode($comment_author,ENT_QUOTES), $comment_author_email));
}
// keep $comments for legacy's sake
$wp_query->comments = apply_filters( 'comments_array', $comments, $post->ID );
$comments = &$wp_query->comments;
$wp_query->comment_count = count($wp_query->comments);
update_comment_cache($wp_query->comments);
if ( $separate_comments ) {
$wp_query->comments_by_type = &separate_comments($comments);
$comments_by_type = &$wp_query->comments_by_type;
}
$overridden_cpage = FALSE;
if ( '' == get_query_var('cpage') && get_option('page_comments') ) {
set_query_var( 'cpage', 'newest' == get_option('default_comments_page') ? get_comment_pages_count() : 1 );
$overridden_cpage = TRUE;
}
if ( !defined('COMMENTS_TEMPLATE') || !COMMENTS_TEMPLATE)
define('COMMENTS_TEMPLATE', true);
$include = apply_filters('comments_template', STYLESHEETPATH . $file );
if ( file_exists( $include ) )
require( $include );
elseif ( file_exists( TEMPLATEPATH . $file ) )
require( TEMPLATEPATH . $file );
else // Backward compat code will be removed in a future release
require( ABSPATH . WPINC . '/theme-compat/comments.php');
}Связанные Функции
Ещё из раздела
Смотрите также: Функции WordPress и Теги Шаблона.
Каждый сайт нуждается в продвижении, таковы сегодняшние реалии сети. Поисковое продвижение сайта сегодня предлагают большое множество СЕО компаний и большая их часть выполняют свою работу добросовестно и качественно.