将GET_PAGE_TEMPLATES加载到选择菜单

时间:2016-04-28 作者:cpcdev

我正在使用WordPress的主题定制器,我想为用户添加一个选项来选择使用的页面模板。

下面是获取页面模板的代码。这是需要修复的部分。我借用了第一段代码,它可以获得一个类别的slug。现在,我需要修改它以加载页面模板作为菜单选项。

function get_page_templates_select() {
 $teh_cats = get_page_templates();
    $results;
    $count = count($teh_cats);
    for ($i=0; $i < $count; $i++) {
      if (isset($teh_cats[$i]))
        $results[$teh_cats[$i]->slug] = $teh_cats[$i]->name;
      else
        $count++;
    }
  return $results;
}
在这里,我将控件添加到主题定制器:

    $wp_customize->add_setting( \'home_page_template_select\' , array(
        \'default\'           => \'test\',
        \'type\'              => \'option\',
        \'transport\'         => \'refresh\',
    ));
    $wp_customize->add_control(
        new WP_Customize_Control(
            $wp_customize,
            \'home_page_template_select\',
            array(
                \'label\'          => __( \'Home page template:\', \'blankwptheme\' ),
                \'section\'        => \'prowordpress_content_customizations\',
                \'settings\'       => \'home_page_template_select\',
                \'type\'           => \'select\',
                \'choices\'        => get_page_templates_select(),
            )
        )
    );
当我运行此代码时,主题定制器超时。如何修改get\\u page\\u templates\\u select函数以正确加载到控件(选择菜单)中?

编辑:

以下是我正在使用的新功能:

function get_page_templates_select() {
 $teh_cats = get_page_templates();
 foreach ( $teh_cats as $template_name => $template_filename ) {
     $results[] = $template_name;
   }
   return $results;
}

1 个回复
SO网友:TheDeadMedic

阅读the documentation:

“radio”或“select”类型控件的选项列表,其中值是键,标签是值。

再次为get_page_templates():

返回值:(array),其中key是模板的名称,value是文件名。

因此,我们可以得出以下结论:

\'choices\' => array_flip( get_page_templates() ),

Now I\'m spoiling you

相关推荐