0

我正在使用 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 来做。有什么想法吗?

4

1 回答 1

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;
}
于 2013-02-08T15:09:42.530 回答