У меня есть цикл, который создает новостную ленту, это выглядит так:
(часть шаблона новостей)
Новости.php
<div id="content">
<div class="scrollArea">
<?php query_posts('category_name=News');?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class="news_block">
<p class="news_title"><?php the_title(); ?></p>
<p class="news_date"><?php the_time('F jS, Y'); ?></p>
<p class="news_text"><?php the_content(); ?></p>
<a href="<?php comments_link(); ?>">Comments to this post (<?php comments_number('0', 'One Response', '%' ); ?>) </a>
</div>
<?php endwhile;?>
<?php endif; ?>
</div>
</div>
<div class="news_right"></div>
</div>
<?php
get_footer();
?>
Комментарии.php
<?php
/**
* @package WordPress
* @subpackage Starkers HTML5
*/
// Do not delete these lines
if (!empty($_SERVER['SCRIPT_FILENAME']) && 'comments.php' == basename($_SERVER['SCRIPT_FILENAME']))
die ('Please do not load this page directly. Thanks!');
if ( post_password_required() ) { ?>
<p class="alert">This post is password protected. Enter the password to view comments.</p>
<?php
return;
}
?>
<!-- You can start editing here. --> <--edit from here-->
<?php get_header();
get_template_part('nav'); ?>
<div id="content">
<div class="scrollArea">
<--end editing heret-->
<?php if ( have_comments() ) : ?>
<h3 id="comments"><?php comments_number('No Responses', 'One Response', '% Responses' );?> to “<?php the_title(); ?>”</h3>
<?php previous_comments_link() ?> <?php next_comments_link() ?>
<!-- View functions.php for comment markup -->
<?php wp_list_comments('callback=html5_comment&end-callback=close_comment'); ?>
<?php previous_comments_link() ?> <?php next_comments_link() ?>
<?php else : // this is displayed if there are no comments so far ?>
<?php if ( comments_open() ) : ?>
<!-- If comments are open, but there are no comments. -->
<?php else : // comments are closed ?>
<!-- If comments are closed. -->
<p class="nocomments">Comments are closed.</p>
<?php endif; ?>
<h3 id="respond"><?php comment_form_title( 'Leave a Reply', 'Leave a Reply to %s' ); ?></h3>
<p class="cancel-comment-reply"><?php cancel_comment_reply_link(); ?></p>
<?php if ( get_option('comment_registration') && !is_user_logged_in() ) : ?>
<p>You must be <a href="<?php echo wp_login_url( get_permalink() ); ?>">logged in</a> to post a comment.</p>
<?php else : ?>
<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">
<?php if ( is_user_logged_in() ) : ?>
<p>Logged in as <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo wp_logout_url(get_permalink()); ?>" title="Log out of this account">Log out »</a></p>
<?php else : ?>
<p><input type="text" name="author" id="author" value="<?php echo esc_attr($comment_author); ?>" size="22" <?php if ($req) echo "required"; ?> />
<label for="author">Name <?php if ($req) echo "(required)"; ?></label></p>
<p><input type="email" name="email" id="email" value="<?php echo esc_attr($comment_author_email); ?>" size="22" <?php if ($req) echo "required"; ?> />
<label for="email">Mail (will not be published) <?php if ($req) echo "(required)"; ?></label></p>
<p><input type="url" name="url" id="url" value="<?php echo esc_attr($comment_author_url); ?>" size="22" />
<label for="url">Website</label></p>
<?php endif; ?>
<!--<p><strong>XHTML:</strong> You can use these tags: <code><?php echo allowed_tags(); ?></code></p>-->
<textarea name="comment" id="comment" cols="50" rows="10" required></textarea>
<button type="submit" name="submit" id="send">Submit Comment</button>
<?php comment_id_fields(); ?>
<?php do_action('comment_form', $post->ID); ?>
</form>
<?php endif; // If registration required and not logged in ?>
</div>
<?php get_footer(); ?>
Ссылка на комментарии работает нормально, комментарии появляются внутри «контента» контейнера и выглядят хорошо. но предыдущая, текущая и следующая записи отображаются за пределами контейнера «контент», после заголовка и перед всем остальным контентом. Я внес изменения только в шаблон новостной страницы и файл my_theme/comments.php. (теги «редактировать отсюда» и «завершить редактирование здесь») Какие файлы мне нужно изменить еще? В чем может быть проблема?
«предыдущие, текущие и следующие сообщения» : вы говорите о комментариях или сообщениях? Ссылки на них или сам контент? Можете ли вы отредактировать свой вопрос, включив в него полученный HTML-вывод и код шаблона, который (как вы думаете) его генерирует? Включите имя файлов шаблонов. (Используйте
@Jan
, когда вы отвечаете мне в комментарии, и я получаю уведомление)Почему вы звоните
get_footer()
внутри comments.php? Кроме того, куда вы звонитеcomments_template()
внутри «news.php»?@Jan: О сообщениях, когда я открываю страницу с комментариями к последнему сообщению, текущему, предыдущему сообщению и сообщению из другой категории (полный текст сообщений) появляется после заголовка и перед основным содержанием, текст этих сообщений является ссылками на список комментариев эти посты! Когда я открываю страницу с комментариями не к последнему сообщению, предыдущие, текущие и следующие сообщения появляются после заголовка и перед основным содержанием, этот текст сообщений также является ссылками на список комментариев к этим сообщениям! Извините за неточность ранее!
Используйте comment_form(), а не самодельный код. См. ответы на вопрос 15179 для рабочего примера comment.php.
http://codex.wordpress.org/Next_and_Previous_Links
Пожалуйста, прочитайте Кодекс WordPress, это поможет.