Я застрял в течение 6 часов на этом одном фрагменте кода. Что я делаю не так?Невозможно сравнить две идентичные строки в PHP?
Возможно, я не могу сравнить значение двух строк the_title() и либо просто нормальную строку непосредственно в инструкции IF, либо одну и ту же строку из другой переменной. Этот оператор IF просто не работает. Я пробовал оба с ==, === и с strcmp(), но ничего, он просто отказывается признать, что обе строки действительно идентичны (я распечатывал их несколько раз, и они совпадают). Есть предположения?
<?php
$args = array('post_type' => 'team', 'showposts' => -1);
$items = new WP_Query($args);
while ($items->have_posts()) : $items->the_post();
$title = the_title(); // one of the titles in the while loop is indeed "Jon Snow"
$comp = 'Jon Snow';
if ($title === $comp){
echo 'Success!';
}
endwhile;
wp_reset_query();
?>
О, и каждый раз, если заявление не работает, система просто выводит все the_title() значения в то время цикла.
Если вы распечатали их в браузере, помните, что браузер удалит посторонние пробелы. Кроме того, вы уверены, что нет лишних пространств в существе, посередине или в конце названия? – jeff
Правильная функция WP для использования в этой ситуации - get_the_title(), которая возвращает и не выполняет эхо. – topdown