Конкретное использование кодирования

У меня есть некоторые проблемы, делающие работу условной внутри функции.

Проверь это:

Я использую эту функцию:

function get_spec_1(){ $desc1 = get_post_meta( get_the_ID(), 'eco_mb_tp_1', true!= "" ); if(!empty ($desc1)){ foreach ( $desc1 as $d1 ){ $code = " <dl> <dt class='bullet6-top'>General</dt> <dd> <ul> <li>$d1</li> </ul> </dd> </dl> "; echo $code; } } } 

Но эта функция вызывает следующее:

 <dl> <dt class='bullet6-top'>Generales</dt> <dd> <ul> <li>$metabox_cloned_value_1</li> </ul> </dd> </dl> <dl> <dt class='bullet6-top'>Generales</dt> <dd> <ul> <li>$metabox_cloned_value_2</li> </ul> </dd> </dl> 

Но я пытаюсь добиться этого:

 <dl> <dt class='bullet6-top'>Generales</dt> <dd> <ul> <li>$metabox_cloned_value_1</li> <li>$metabox_cloned_value_2</li> </ul> </dd> </dl> 

И если нет существующих данных.

то весь <dl> не будет отображаться.

Как я могу получить этот результат?

благодаря

Solutions Collecting From Web of "Конкретное использование кодирования"

Ну вот. Поскольку DL, DT, DD и UL находятся внутри цикла foreach, поэтому они дублируются. Вот правильный код:

 function get_spec_1(){ $desc1 = get_post_meta( get_the_ID(), 'eco_mb_tp_1', true ); if( !empty( $desc1 ) ){ // Open the stuff $code = " <dl> <dt class='bullet6-top'>General</dt> <dd> <ul>"; // Loop through the items once inside the ul foreach ( $desc1 as $d1 ){ code .="<li>$d1</li>"; } // Close the stuff code.=" </ul> </dd> </dl> "; echo $code; } }