这实际上取决于您是如何实现此功能的,但我将解释我是如何为自己的主题做到这一点的。
假设您已经为主题开发了一个主题选项页面,您可以通过以下方式获得布局的价值:
psyrix_get_theme_option( \'layout\' );
返回的值是一个字符串,例如“grid”。应该有一个函数可以为前端选择适当的模板部件。您可以在该函数中使用过滤器:
function choose_template_for_my_blog( ){
$layout = psyrix_get_theme_option( \'layout\' );
$layout = apply_filters(\'psyrix_filter_layout\', $excerpt);
}
现在,您可以创建一个简单的插件,并根据URL查询过滤布局:
add_filter(\'psyrix_filter_layout\',\'filter_demo_layouts\',11,1);
function filter_demo_layouts( ){
if( isset( $_REQUEST[\'home_layout\'] ) ){
return $_REQUEST[\'home_layout\'];
}
}
这样,当您尝试访问
mysite.com/?home_layout=grid
, 这个
grid
值将传递给
choose_template_for_my_blog()
函数,该函数将覆盖布局。
这是一个简单的基本示例,说明了如何使用它。您应该添加更多筛选器并清理用户的输入,然后再将其推到已发布状态。