Попытка получить WordPress PHP внутри оператора эха HTML - PullRequest
0 голосов
/ 29 декабря 2018

Я думал, что понял это сразу после прочтения многих статей SO, но продолжаю получать ошибки.По сути, в моем шаблоне страницы content.php я хотел отобразить другой тег статьи в зависимости от того, находились ли вы на странице архива или отдельной публикации.Итак, я делаю что-то вроде этого:

<?php if ( is_archive() ) {
    echo '<article id="post-' . the_ID() . '">';
        } else {
    echo '<article id="post-' . the_ID() . ' . "post_class() . '">';
}
?>

Но то, что происходит здесь, вместо того, чтобы выплевывать идентификатор на странице, в результате HTML выглядит следующим образом:

1234<article id="post-">Content Goes Here</article>

когда это должно быть ....

<article id="post-1234">Content Goes Here</article>

так почему это не отображается правильно?

Ответы [ 2 ]

0 голосов
/ 29 декабря 2018

Просто измените ваш код на: the_ID() по умолчанию имеет echo param true, поэтому он печатает идентификатор, но get_the_ID() возвращает идентификатор, который объединяется с вашим HTML-кодом.Вы можете получить более подробную информацию, нажав здесь .А также удалил Double Qutoes из остальной части после функции post_class().

<?php if ( is_archive() ) {
    echo '<article id="post-' . get_the_ID() . '">';
        } else {
    echo '<article id="post-' . get_the_ID() . '". post_class() .'>';
}
?>
0 голосов
/ 29 декабря 2018

the_ID() (и довольно много других функций WP) имеет вариант get_the_ID(), который вы захотите использовать здесь.the_ID() издает свое внутреннее эхо;get_the_ID() возвращает это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...