Wordpress / PHP - сделать один короткий код

В WP вы можете фильтровать шорткоды из строки и выполнять их функции с do_shortcode($string),

Можно ли отфильтровать один шорткод вместо всех зарегистрированных шорткодов?

например, мне нужно несколько шорткодов для постеров с комментариями, но не по понятным причинам:)

1 ответ

Решение
function do_shortcode_by_tags($content, $tags)
{
    global $shortcode_tags;
    $_tags = $shortcode_tags; // store temp copy
    foreach ($_tags as $tag => $callback) {
        if (!in_array($tag, $tags)) // filter unwanted shortcode
            unset($shortcode_tags[$tag]);
    }

    $shortcoded = do_shortcode($content);
    $shortcode_tags = $_tags; // put all shortcode back
    return $shortcoded;
}

Это работает путем фильтрации глобальных $shortcode_tags, Бег do_shortcode()затем возвращаю все как было раньше.

Пример использования;

$comment = do_shortcode_by_tags($comment, array('tag_1', 'tag_2'));

Это будет применять шорткод tag_1 а также tag_2 на комментарий.

Другие вопросы по тегам