Нужно задать проверку в description – если заполнено поле с ключем "seo-desc", то выводить его значение.
Если поле не заполнено, то показывать "single_cat_title();"
Вроде написала правильно, но почему то условие не срабатывает.
<meta name="description" content="<?php if ( (is_home()) || (is_front_page()) ) {
bloginfo('description');
} elseif(is_single()) {
if($key !== '') {
$key="seo-desc"; echo get_post_meta($post->ID, $key, true);
} else {
single_cat_title();
}
} else {
bloginfo('description');
}
?>" />
Подскажите, кто видит, в чем тут ошибка?
if($key !== ”) – где и как до этой строки определяется $key?
Видимо, Вы хотели написать что-то типа
И насчет правильности использования single_cat_title() на сингулярной странице есть сомнения.
Юрий Дмитриевич, вы, как всегда правы.
Поменяла на the_title();
Самое смешное, что мой пример тоже работал, т.е. выводил значение ключа seo-desc.
Но не работало условие.
С вашими правками заработало и оно. Спасибо!
В php есть строгие равенства (неравенства) и нестрогие. Строгие === и !== подразумевают не только равенство значений, но и типов. Нестрогие == и != перед проверкой преобразуют значения к одному типу. Не инициализированная переменная $key строго не равно пустой строке. Вот оно и выводило, но не работало.