Поддержка Проблемы и решения Предательский comment-page

  • Добрый вечер. У меня на блоге включены древовидные комментарии, из-за чего с появлением второй и более страницы с комментариями, появляются страницы в подобном формате: */comment-page-*, из-за которых появляется дублированный контент. Запретить эти страницы в роботе я не могу, так как они у меня уже очень давно используются для заработка. Можно ли что-то такое прописать в кодах шаблона, чтобы при переходе на вторую, третью, четвертую и так далее страницу комментариев, на странице уже не отображался сам пост, а отображались только комментарии…?

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Да, можно. На примере темы Twenty Eleven:

    <?php $comment_page = get_query_var('cpage'); ?>
    <?php if ( empty($comment_page) ) : ?>
    
    <div class="entry-content">
    	<?php the_content(); ?>
    	<?php wp_link_pages( array( 'before' => '<div class="page-link"><span>' . __( 'Pages:', 'twentyeleven' ) . '</span>', 'after' => '</div>' ) ); ?>
    </div><!-- .entry-content -->
    
    <?php endif; ?>

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

    Если его нужно вставить в comments.php, то вот на всякий случай код моего comments.php:

    <?php
    	function custom_comment ( $comment, $args, $depth ) {
    	$GLOBALS['comment'] = $comment;
    
    	// Get admin users
    	$users = ( get_users_of_blog() );
    
    	foreach ($users as $user) :
    		$admin_comment = false;
    		$raw = unserialize( $user->meta_value );
    
    		if ( isset( $raw['administrator'] ) ) :
    			if ( $comment->comment_author_email == $user->user_email) :
    				$admin_comment = true;
    
    				break;
    			endif;
    		endif;
    	endforeach;
    ?>
    
    	<li <?php comment_class(); ?> id="comment-<?php comment_ID(); ?>" >
    		<div class="comment-box clear">
    			<div class="c-grav">
    				<?php echo get_avatar( get_comment_author_email(), '39' ); ?>
    				<div class="c-author"><?php comment_author_link(); ?></div>
    				<div class="c-date"><?php comment_date( 'M j Y' ); ?> | <?php comment_time() ?></span></div>
    			</div>
    			<div class="c-body">
    				<?php if ($comment->comment_approved == '0' ) : ?>
    					<p><?php _e( '<em><strong>Please Note:</strong> Your comment is awaiting moderation.</em>', 'punchcut' ); ?></p>
    				<?php endif; ?>
    				<?php comment_text(); ?>
    				<?php comment_type(( '' ),( 'Trackback' ),( 'Pingback' )); ?>
    				<?php echo comment_reply_link(array( 'depth' => $depth, 'max_depth' => $args['max_depth']));	 ?>
    				<?php edit_comment_link( 'edit','<p>','</p>' ); ?>
    			</div><!--end c-body-->
    		</div><!--end comment-box-->
    <?php } ?>
    <?php
    // Template for pingbacks/trackbacks
    	function list_pings($comment, $args, $depth) {
    	$GLOBALS['comment'] = $comment;
    ?>
    	<li id="comment-<?php comment_ID(); ?>"><?php comment_author_link(); ?>
    <?php } ?>
    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Нет, в single.php. В теме Traction PRO, которая установлена на сайте из вашего профиля, этот файл находится в каталоге родительской темы Traction. Нужно заменить этот фрагмент:

    <div class="entry single">
    	<?php if ( function_exists( 'add_theme_support' ) ) the_post_thumbnail( 'index-thumb', array( 'class' => 'single-post-thm alignright border' ) ); ?>
    	<?php the_content(); ?>
    	<?php edit_post_link(__( 'Edit', 'traction' )); ?>
    	<?php wp_link_pages(); ?>
    </div><!--end entry-->

    на такой:

    <?php $comment_page = get_query_var('cpage'); ?>
    <?php if ( empty($comment_page) ) : ?>
    
    <div class="entry single">
    	<?php if ( function_exists( 'add_theme_support' ) ) the_post_thumbnail( 'index-thumb', array( 'class' => 'single-post-thm alignright border' ) ); ?>
    	<?php the_content(); ?>
    	<?php edit_post_link(__( 'Edit', 'traction' )); ?>
    	<?php wp_link_pages(); ?>
    </div><!--end entry-->
    
    <?php endif; ?>

    Спасибо вам огромное. Это помогло, вот только посмотрел я на это «обрезание», и понял, что из-за этого многих пользователей к сожалению введу в заблуждение =( …а некоторые посетители, вообще будут попадать на эти обрезанные страницы, приходя на них из поисковиков, и не будут понимать, почему там одни комментарии.

    А нет ли возможности, не обрезать эту часть поста до комментариев, а просто закрыть её от поисковиков?

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Тема «Предательский comment-page» закрыта для новых ответов.