Как отобразить несколько последовательных элементов HTML - PullRequest
0 голосов
/ 26 апреля 2019

Я использую ACF на своем сайте WordPress для отображения HTML-текста в строке поиска рядом с заголовками сообщений на основе значений массива сообщений.

В настоящий момент скрипт отображает только до 1 html-значений, но я хочу, чтобы он включал все значения, если они существуют.

add_filter( 'asp_results', 'asp_custom_field_to_results', 10, 1 ); 
function asp_custom_field_to_results( $results ) {
  $custom_field = 'trade_status'; 

  foreach ($results as $k=>&$r) {
    if ($r->content_type != 'pagepost') continue;
    if ( function_exists('get_field') )
        $trade_status  = get_field( $custom_field, $r->id, true ); // ACF support
    else
        $trade_status  = get_post_meta( $r->id, $custom_field, true );
    // Modify the post title to add the meta value
    if ( !empty($trade_status) ) {
      if ( in_array('30', $trade_status) ) {
        $html = '<span class="new">New</span>';
      } else if ( in_array('20', $trade_status) ) {
        $html = '<span class="active">Active</span>';
      } else if ( in_array('10', $trade_status) ) {
        $html = '<span class="closed">Closed</span>';
      } else {
        $html = '';
      }
      $r->title = $html . $r->title;
    }
  }

  return $results;
}

1 Ответ

2 голосов
/ 26 апреля 2019

Итак, похоже, что сейчас вы перезаписываете значение $ html для каждой соответствующей итерации в цикле.Я предполагаю, что вы захотите объединить (. =), А не перезаписать (=), когда вы делаете это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...