Комментарии не отображаются в WordPress — single.php похоже, что он не справляется comments.php

#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> теги, это сработало! Еще раз спасибо!