To extract all shordcodes from post there is a wordpress built in function which can be used in this case:
get_shortcode_regex()
this function will collect all registered shortcodes, and using regex we can check does targeted post contains one of those shortcodes:
preg_match_all('/'.$pattern.'/uis', $post->post_content, $matches);
So the complete function to get the list of shortcodes with parameters from specific post could look like this:
function prefix_get_all_shortocodes_from_post($post_id){ global $post; $post = get_post ($post_id);// get current post $pattern = get_shortcode_regex();// get all registered shortcodes preg_match_all('/'.$pattern.'/uis', $post->post_content, $matches); return $matches; }
This function will return array like this:
Array ( [0] => Array ( [0] => [slide-anything id="213"] [1] => [gallery ids="186,185,187,184,183,181,182"] ) [1] => Array ( [0] => [1] => ) [2] => Array ( [0] => slide-anything [1] => gallery ) [3] => Array ( [0] => id="213" [1] => ids="186,185,187,184,183,181,182" ) [4] => Array ( [0] => [1] => ) [5] => Array ( [0] => [1] => ) [6] => Array ( [0] => [1] => ) )