Я использую настраиваемые поля для отображения цен (кроме знака доллара). Моя цель — закодировать знак доллара в теме, но я столкнулся с проблемой.
Причина, по которой я использую этот подход, заключается в том, что если я введу знак доллара в настраиваемое поле, я не смогу использовать 'orderby' => 'meta_value_num'
И мне нужно использовать условный оператор для отображения знака доллара, потому что не все посты будут иметь цены.
Код ниже приводит к
9,75 $
Обратите внимание на пробел между знаком доллара и цифрой «9». Как я могу удалить пустое пространство? Или есть альтернативный метод кодирования знака доллара с помощью условного оператора?
<?php if( get_post_meta($post->ID, 'price', true) ) { ?>
$
<?php } ?>
<?php echo get_post_meta( get_the_ID(), 'price', true); ?>
Удалил пробелы в самом коде и немного его оптимизировал (не понимал, зачем вам условие для знака доллара, а не для самой цены), это должно сработать:
<?php if( get_post_meta($post->ID, 'price', true) ) {
echo '$', get_post_meta( get_the_ID(), 'price', true);
} ?>
Откуда исходит пространство в исходном коде:
<?php if( get_post_meta($post->ID, 'price', true) ) { ?>
$<!- HERE ->
<?php } ?> <!- HERE ->
<!- AND HERE ->
<?php echo get_post_meta( get_the_ID(), 'price', true); ?>
Смотрите идею здесь: http://jsfiddle.net/93mcu7sj/
Других решений пока нет …