【发布时间】:2010-08-25 16:37:06
【问题描述】:
我正在 Wordpress 中构建一个过滤器插件,并用一些 html 替换一些插件特定的标签。
示例:[VIDEO ID=12] 将通过此函数中的 preg_replaced 替换
function display_video($text){
$pattern = '/\[VIDEO ID\=\d+\]/';
$text=preg_replace($pattern,get_video_block($id),$text);
return $text;
}
我不确定如何确保为每个替换事件向我的 get_video_block() 函数提供正确的 ($id) 参数。
除了preg_replace() 函数内部没有真正的循环,那么我将如何提供该值?
更多上下文,get_video_block()函数:
function get_video_block($id){
global $wpdb;
$wpdb->show_errors();
$table_name = $wpdb->prefix . "video_manager";
$query = "SELECT * FROM " . $table_name . " WHERE `index` = '$id'";
$results = $wpdb->get_results($query, ARRAY_A);
$results = $results[0];
$returnString = '<div class="vidBlock">';
$returnString .= $results['embed_code'];
$returnString .= '<div class="voteBar">';
$returnString .= $results['vote_text'];
$returnString .= '<input type="button" value="YES" class="voteButton">';
$returnString .= '<input type="button" value="NO" class="voteButton">';
$returnString .= '</div>';
$returnString .= $results['title'] . '<br>';
$returnString .= $results['description'] . '<br>';
$returnString .= '</div>';
return $returnString;
}
【问题讨论】:
-
只是好奇,如果它是一个带有 [code attrib=""] 模式的 wordpress 过滤器,为什么不使用 wordpress 短代码 API? codex.wordpress.org/Shortcode_API
-
get_video_block()在做什么? -
我没有使用它,因为我以前从未听说过它;)
-
@Felix... 它正在构建一个小视频模块。
-
附注:无论前缀是否可信,在
get_video_block()函数中转义表名会很有用。
标签: php regex wordpress preg-replace shortcode