我正在使用wordpress,我正在为网站的每个页面创建一个“小部件选择器”。在每个页面的后端,我有15个复选框 - 如果用户选择了一个复选框,它会在该页面的侧边栏中显示该特定的小部件。
我有一个大型PHP文档,包含15个。每个包含都是一个小部件。如果用户选中该页面上的某个框,则会触发该包含:
if( in_array( 'Blog', get_field('modules') ) ) {
include 'modules/blog.php';
}
这很棒!但是,用户无法指定窗口小部件的显示顺序。我需要开发某种系统,允许用户选择模块的顺序。
继续我的想法 - 如果我可以让每个复选框吐出指定的顺序,我需要某种方式在PHP中重新定位包含:
if( in_array( 'Blog', get_field('modules') ) ) {
$order = 2;
include 'modules/blog.php';
}
if( in_array( 'Gallery', get_field('modules') ) ) {
$order = 1;
include 'modules/gallery.php';
}
现在我需要一些方法根据提供的订单重新排序这两个“块”。我能以某种方式实现这一目标吗?显然我想使用PHP,但如果不可能,我可以使用jQuery。有什么想法吗?
答案 0 :(得分:0)
不是包含模块,而是将列表推送到最后将包含它们的数组。像:
$final_modules = array();
if( in_array( 'Blog', get_field('modules') ) ) {
$order = 2;
$final_modules[$order] = 'modules/blog.php';
}
if( in_array( 'Gallery', get_field('modules') ) ) {
$order = 1;
$final_modules[$order] = 'modules/gallery.php';
}
//sort based on key
ksort($final_modules);
foreach($final_modules as $order => $include_file) {
include $include_file;
}