Добавить строку в список предметов на основе аргументов функции


Моя цель с этой функцией, чтобы добавить строку в список, который манипулирует первым, а затем вернуться манипулировать строкой. Все это происходит с немного логики между ними, делая меня цикл через массив 3 раза, что я хотел бы изменить для чистого подхода:

function getNiceTags( $post )
{
    $output         = '<ul class="post-tags">';
    $tags_list      = [];

    $tags = get_the_tags($post->ID);

    if( !isset( $tags ) ) {
        return;
    }

    foreach ($tags as $tag) {
        $tags_list[] = $tag->name;
    }

    if( isset( $args['additional-text'] ) ) {
        foreach( $tags_list as $tag ) {
            $tag_temp .= sprintf(
                /* translators: %s: post tag. */
                esc_html_x( $args['additional-text'] . '%s', 'post tags', '_s' ),
                $tag
            );

            $output .= '<li class="post-tag">' . $tag_temp . '</li>';
            unset( $tag_temp );
        }
    } else {
        foreach( $tags_list as $tag ) {
            $tag_temp .= sprintf(
                /* translators: %s: post tag. */
                esc_html_x('%s', 'post tags', '_s'),
                $tag
            );

            $output .= '<li class="post-tag">' . $tag_temp . '</li>';
            unset($tag_temp);
        }
    }

    $output .= '</ul>';

    return $output;
}

В $tags = get_the_tags($post->ID); генерирует массив тегов из определенного поста.

$args['additional-text'] будет основным оператором по моей логике. Если эта функция возвращает это $args['additional-text'] строки в своих доводах, то он должен добавить эту строку в моем списке тегов, если нет, то его нужно просто вернуть мои теги.

Как я могу улучшить это?



91
1
задан 27 марта 2018 в 10:03 Источник Поделиться
Комментарии