Customizer Settings in Arrays

时间:2015-10-15 作者:Jamie

下午好

我使用主题定制器允许用户选择要在首页上显示摘录的页面。我在设置名称中使用了一个数组:

$wp_customize->add_setting( \'learn_more[0]\' , array(
    \'default\'     => 1
) );
$wp_customize->add_setting( \'learn_more[1]\' , array(
    \'default\'     => 1
) );
$wp_customize->add_setting( \'learn_more[2]\' , array(
    \'default\'     => 1
) );
然后我为每个创建一个控件。

在我的front-page.php 然后使用模板get_theme_mod(\'learn__more\') 提供要在自定义循环中搜索的页面数组。

它工作得很好。除了

我已经把我想要的东西从4件减少到了3件。但是,第四项现在存储在数据库中,因此每次我使用get_theme_mod 它返回一个由4项组成的数组。因此,我的front-page.php 显示4项。

有没有办法解决这个问题?如何删除数据库中的第四项?我可以看到一个未来的位置,我想通过自定义程序上的设置来调整数量,但这将导致每次更改项目数量时都会发生此问题。

有人有什么聪明的想法吗?

1 个回复
最合适的回答,由SO网友:kaiser 整理而成

这个get_theme_mod() 功能工作如下:

它获取get_theme_mods() 发动机罩下的功能

$theme_slug = get_option( \'stylesheet\' );
get_option( "theme_mods_{$theme_slug}" );
因此,如果要升级,请为该版本的插件或主题编写一个特定的升级函数,该函数使用以下函数之一,其中名称通过get_option( \'stylesheet\' ); 再次强调:

  • delete_option( "mods_{$theme_name}" );
  • update_option( "theme_mods_{$theme_slug}", $mods );

相关推荐

网站警告:CALL_USER_FUNC_ARRAY()要求参数1是有效的回调,类‘WPPR_Public’没有方法‘amp_Support’

警告:call_user_func_array() 要求参数1为有效回调,类“Wppr\\u Public”在/home1/thrfolde/Public\\u html/3foldtraining/wp includes/class wp hook中没有方法“amp\\u support”。php在线288如何解决此错误?https://3foldtraining.com/ - 在顶部标题上(如果双击黑条,可以看到该错误) // Avoid the array_slice if p