Ada*_*mat 2 wordpress shortcode
我在基于数据库条目自动生成短代码方面遇到了一些问题。
我能够得到正常的简码工作,即:
function route_sc5() {
return "<div>Route 5</div>";
}
add_shortcode('route 5','route_sc');
Run Code Online (Sandbox Code Playgroud)
和以下激活它的短代码是[route 5]
这有效。但我需要的是为每个数据库条目生成的简码。就像是:
$routes = $wpdb->get_results( $wpdb->prepare("SELECT * FROM wp_routes") );
foreach($routes as $route)
{
function route_sc$route->id () {
return "<div>Route $route->id</div>";
}
add_shortcode('route $route->id','route_sc$route->id');
}
Run Code Online (Sandbox Code Playgroud)
上面只是我希望它如何工作的一个例子。不是字面上我正在使用的代码。我将如何实现这一目标?): 谢谢。
以下是使用 PHP 5.3匿名函数的动态短代码回调的示例:
for( $i = 1; $i <= 5; $i++ ) {
$cb = function() use ($i) {
return "<div>Route $i</div>";
};
add_shortcode( "route $i", $cb );
}
Run Code Online (Sandbox Code Playgroud)
但我不得不问:你能使用短代码参数完成你需要做的事情吗?IE。[route num=3]。然后你就可以只有一个handle_route()函数和一个[route]短代码,这可能会简化事情。
另外,虽然从技术上讲,您可以在名称中包含带有空格的短代码,但我认为这会产生令人困惑的歧义。如果您决定每条路线都需要特定的短代码,我会推荐“route5”或“route-5”而不是“route 5”。
| 归档时间: |
|
| 查看次数: |
12147 次 |
| 最近记录: |