我已经做了很多搜索,但还没有真正找到答案。我创建了一个具有广泛自定义选项的主题。对于我的index.php
页面我有各种布局,用户可以从中选择。网格、列表等。
我见过主题演示网站使用布局链接,如mysite.com/?home_layout=grid
例如这是如何实现的?
正在查找有关此问题的任何信息。链接、教程和其他问题。任何能帮助我的东西。
非常感谢您的帮助。
我已经做了很多搜索,但还没有真正找到答案。我创建了一个具有广泛自定义选项的主题。对于我的index.php
页面我有各种布局,用户可以从中选择。网格、列表等。
我见过主题演示网站使用布局链接,如mysite.com/?home_layout=grid
例如这是如何实现的?
正在查找有关此问题的任何信息。链接、教程和其他问题。任何能帮助我的东西。
非常感谢您的帮助。
我使用multisite做过类似的事情(显示多个主题)。https://codex.wordpress.org/Create_A_Network
这实际上取决于您是如何实现此功能的,但我将解释我是如何为自己的主题做到这一点的。
假设您已经为主题开发了一个主题选项页面,您可以通过以下方式获得布局的价值:
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()
函数,该函数将覆盖布局。这是一个简单的基本示例,说明了如何使用它。您应该添加更多筛选器并清理用户的输入,然后再将其推到已发布状态。