Intereting Posts
Добавить описание продукта (контента) в адрес электронной почты клиента WooCommerce Дизайн URL-адресов для подписок? Как избежать дублирования одного и того же meta_value? Изменение или обновление цикла WordPress на основе выбора выпадающего списка Программное добавление пунктов меню воспроизводится в нескольких меню Тема с неправильным обновлением Лучшее действие для создания пользовательского сообщения и присвоение ему таксономических условий при активации плагина? Обновить wp.media после вызова ajax Не могу сделать 301 Redirect, почему? Как отображать пустые звезды на продуктах с woocommerce? Пользовательский объект типа сообщения – неопределенные переменные Как показать последний комментарий о зависании? Как удалить родительскую категорию Как добавить настраиваемый шаблон в плагин? Как разрешить обычным пользователям видеть увеличенные изображения, нажав на них WordPress?

условно echo <br /> в цикле данных метаданных

Я работаю над тематической дочерней темой и с помощью WPAlchemy Meta Box Class создаю мета-окно «Художественная информация», которое я хочу условно откликнуться в конце каждого сообщения:

заглавие
средний
Габаритные размеры
Дополнительная информация

Мой экземпляр класса определяется следующим образом в functions.php :

 $prefix = 'wpf_'; $artinfo_mb = new WPAlchemy_MetaBox(array ( 'id' => '_custom_meta', // underscore prefix hides fields from the custom fields area 'title' => 'Artwork Info', 'template' => STYLESHEETPATH . '/custom/artwork-meta.php', 'context' => 'normal', )); 

И вот пример HTML для каждого поля, расположенного в artwork_meta.php :

 <label>Title</label> <p> <?php $mb->the_field('title'); ?> <input type="text" style="width:99%" name="<?php $mb->the_name(); ?>" value="<?php $mb->the_value(); ?>"/> </p> 

Я использую эту функцию в functions.php для печати данных в каждом столбце через массив полей:

 function display_artwork_info() { global $artinfo_mb; $artinfo_mb->the_meta(); $values = array('title','medium','dimen','additional'); echo the_content(); // loop through and conditionally echo the value with a line break foreach ($values as $val) { if ($val != ''){ $mb->the_value($val); echo '<br />'; } } } add_action('thematic_post', 'display_artwork_info'); 

Все работает отлично, за исключением foreach ($values as $val) всегда перекликается с разрывами строк, даже если значение поля не содержит данных. Например, если поля «medium» и «дополнительная информация» пусты, HTML-код выглядит следующим образом:

 Title <br /> <br /> Dimensions <br /> 

Что-то не так с моей петлей? Использую ли я неправильную функцию WPAlchemy для эхо-метаданных? Заранее спасибо 🙂

$ val никогда не будет == '' здесь, потому что $ val содержит имя вашего поля, а не данные. также, используйте get_the_value, чтобы вернуть его, the_value будет просто выводить данные из системы.

 foreach ($values as $val) { if ($artinfo_mb->get_the_value($val) != ''){ $artinfo_mb->the_value($val); echo '<br />'; } }