Le Codex a n exemple d'utilisation de get_shortcode_regex () pour vérifier si un shortcode est appelé sur une page donnée:
$pattern = get_shortcode_regex();
preg_match('/'.$pattern.'/s', $posts[0]->post_content, $matches);
if (is_array($matches) && $matches[2] == 'YOURSHORTCODE') {
//shortcode is being used
}
Cependant, cela ne détecte que le premier shortcode dans le contenu de la publication. Est-ce un bogue avec get_shortcode_regex (), ou les paramètres preg_match () peuvent-ils être modifiés pour lui faire retourner tous les shortcodes présents sur la page?
De documents PHP (accentuation du mien):
preg_match () renvoie le nombre de fois que le motif correspond. Ce sera soit 0 fois (pas de correspondance) soit 1 fois car preg_match () arrêtera la recherche après la première correspondance . preg_match_all () au contraire continuera jusqu'à ce qu'il atteigne la fin du sujet.