#php #wordpress #if-statement
#php #wordpress #оператор if
Вопрос:
У меня есть несколько полей (WordPress), и иногда одно из них пусто. Я хочу отобразить содержимое ‘the_excerpt’, когда ‘short_description’ не заполнено.
вот с чем я пришел:
if (empty(the_field('short_description'))) {
the_excerpt();
} else {
the_field('short_description');
}
К сожалению, он отображает как short_description, так и except после этого. Что здесь не так? Я что-то пропустил? Для меня код выглядит хорошо.
Комментарии:
1. Используйте get_the_field, the_field немедленно печатает результаты.
2. @TimSheehan ты имеешь в виду это? if (empty(the_field(‘short_description’))) { the_excerpt(); } else { get_the_field(‘short_description’); } он по-прежнему отображает оба:(
3. Нет, он означает, что при вызове
the_field('short_description')
он не возвращает значение, вместо этого вывод отправляется на страницу напрямую,4. Используйте get_the_field при проверке вашего условия, используйте the_field, когда вы хотите распечатать результат непосредственно на странице.
Ответ №1:
Чтобы проверить, существует ли значение, сначала используйте get_field()
функцию вместо the_field()
Пожалуйста, взгляните на пример, который показывает, как проверить, существует ли значение перед его отображением.
<?php if( get_field('short_description') ): ?>
<?php the_field('short_description'); ?>
<?php else: ?>
<?php the_excerpt(); ?>
<?php endif; ?>
Или вы можете использовать другой способ, например :
$isValue = get_field( "short_description" );
if( $isValue ) {
echo $isValue ;
} else {
the_excerpt();
}
Комментарии:
1. спасибо, я использовал первое. Работает отлично! Высоко ценится
Ответ №2:
WooCommerce: показывать пользовательское краткое описание, когда оно пустое
add_action( 'woocommerce_single_product_summary', 'bbloomer_echo_short_desc_if_empty',
21 );
function bbloomer_echo_short_desc_if_empty() {
global $post;
if ( empty ( $post->post_excerpt ) ) {
$post_excerpt = '<p class="default-short-desc">';
$post_excerpt .= 'This is the default, global, short description.<br>It will
show if <b>no short description has been entered!</b>';
$post_excerpt .= '</p>';
echo $post_excerpt;
}
}
Это правильный