#wordpress #wordpress-theming #comments
#wordpress #wordpress-тематизация #Комментарии
Вопрос:
Я настраиваю тему WordPress. У меня есть single.php файл и comments.php досье. Я не могу получить форму комментария для отображения single.php , и я считаю, что проблема в том, что она не проходит comments.php , потому что я вставил какой-то фиктивный текст в comments.php просто чтобы посмотреть, что появилось, и вообще ничего не изменилось. single.php независимо от того, что я меняю на comments.php . Я убедился, что комментарии включены как в обсуждении, так и в отдельных сообщениях. Я прочитал и перечитал документацию и попробовал код несколькими разными способами. Я пробовал добавлять и вычитать код в functions.php и в CSS. Прошло уже несколько недель, и я просто не знаю, что еще попробовать.
Я пробовал внедрять решения, которые опубликовали другие, такие как изменение на и . Нет никаких изменений в том, что отображается на одной странице публикации. Я также пробовал деактивировать плагины, никакого эффекта.
В настоящее время мой single.php настроен следующим образом:
<?php get_header(); ?>
<!-- Post Start -->
<div class="postContainer">
<div class="ftImg"><?php the_post(); the_post_thumbnail(); ?>
</div>
<div class="post">
<h2>
<?php the_title(); ?>
</h2>
<p>
<?php the_post(); the_content(); ?>
</p>
<p>
<a class="readbtn" href="#">Back to the Blog</a>
</p>
<p>
<?php echo sharethis_inline_buttons(); ?>
</p>
<?php comments_template(); ?>
</div>
<?php get_footer(); ?>
Я также пробовал:
<?php get_header(); ?>
<!-- Post Start -->
<div class="postContainer">
<div class="ftImg"><?php the_post(); the_post_thumbnail(); ?>
</div>
<div class="post">
<h2>
<?php the_title(); ?>
</h2>
<p>
<?php the_post(); the_content(); ?>
</p>
<p>
<a class="readbtn" href="#">Back to the Blog</a>
</p>
<p>
<?php echo sharethis_inline_buttons(); ?>
</p>
<?php while ( have_posts() ) : the_post();
if ( comments_open() || get_comments_number() ) :
comments_template();
endif;
endwhile; ?>
</div>
<?php get_footer(); ?>
Я также пробовал это без части while, просто начиная с оператора if, и я также попытался поместить цикл while перед открывающим тегом h2, без изменений.
Я ожидаю, что форма комментария появится под кнопками «Поделиться» или, по крайней мере, фиктивный текст в моем comments.php файл, но там вообще ничего нет.
Ответ №1:
Вы неправильно используете цикл. the_title()
, the_content()
, etc должны быть внутри цикла, а также comments_template()
.
<!-- Post Start -->
<div class="postContainer">
<div class="ftImg"><?php the_post_thumbnail(); ?></div>
<?php
while ( have_posts() ) :
the_post();
?>
<div class="post">
<h2>
<?php the_title(); ?>
</h2>
<p>
<?php the_content(); ?>
</p>
<p>
<a class="readbtn" href="#">Back to the Blog</a>
</p>
<?php comments_template(); ?>
</div>
<?php endwhile; // end of the loop. ?>
</div>
<?php get_footer(); ?>
Комментарии:
1. Спасибо! Я внедрил это решение, и все, что находится между моим отображаемым изображением и нижним колонтитулом, исчезло, так что должно быть что-то еще, что я делаю неправильно, на этой странице или в другом месте. Возможно ли, что мой functions.php неправильно настроено, поскольку использование цикла while правильным способом приводит к исчезновению содержимого?
2. Снова комментируя в случае других сталкивался с этим — как только я завернул <?php comments_template(); ?> в <p> теги, это сработало! Еще раз спасибо!