Return to Snippet

Revision: 3581
at August 15, 2007 09:26 by eethann


Updated Code
/**
 *  Replace all tags matching a regexp with value of callback function
 *  (passes grouped subpatterns to callback as params)
 */
function my_wp_plugin_tag_action($content,$tag,$function,$args = FALSE) {
  // match all regular expressions
  preg_match_all($tag,$content,$matches);
  if (count($matches)>0) {
    // filter duplicates
    $matches = array_unique($matches);
    // loop through
    $tag_results = array();
    $found_tags = array();
    foreach ($matches as $idx => $match) {
      //build arg array
      $full_tag = array_shift($match);
      //call function, adding function output and full tag text to replacement array
      $tag_results[] = my_wp_plugin_buffer_func($function,$match);
      $found_tags[] = $full_tag;
    }
    // replace all tags with corresponding text
    $content = str_replace($found_tags,$tag_results,$content);
  }
  return $content;
}

Revision: 3580
at August 15, 2007 09:26 by eethann


Initial Code


Initial URL


Initial Description


Initial Title
replace content tags with callback via regex

Initial Tags
textmate, wordpress, filter

Initial Language
PHP