get_option function

时间:2015-02-27 作者:Sultenhest

我目前正在尝试创建自己的主题,但我不太确定get\\u option()函数是如何工作的,因为这是为什么。。

echo get_option(\'show_header\', \'sultenhest_theme_display_options\');
echo get_option(\'sultenhest_theme_display_options\')[\'show_header\'];
。。两者都返回1(但Dreamweaver不喜欢第二个选项)。虽然

echo get_option(\'twitter\', \'sultenhest_theme_social_options\');
。。只返回“sultenhest\\u theme\\u social\\u options”,这是不正确的。

一个选项是这样定义数组

$social_options = get_option( \'sultenhest_theme_social_options\' );
这样称呼它

echo $social_options[\'twitter\'];
它返回正确的字符串,但只在标题中起作用。php(如果在其中定义了数组)文件,而不是在中,例如页脚。php。

更新:继ialocin和Brad Dalton之后,我想出了这个解决方案,它就像一个魔咒:

function sultenhest($option, $arg){
  $the_array = array();
  foreach( get_option(\'sultenhest_theme_\'.$option) as $key => $item ){
    $the_array[$key] = $item;
  }
  return $the_array[$arg];
}
然后像这样回应:

echo sultenhest(\'social_options\', \'twitter\') ? \'<a href="\' . sultenhest(\'social_options\', \'twitter\') . \'">Twitter</a>\' : \'\';

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

您正在使用get_option() 错误,第一个变体,请再看看get_option() documentation. 基本上,您不能使用该函数直接访问数组元素,它只是不支持它。

第二个变体应该是可能的,但如果我没有完全错的话,您至少需要PHP 5.4;我对dreamweaver一无所知。

无法在任何地方访问变量的原因是变量范围,请在PHP Manual: Variable scope.

我想最简单的事情就是用传统的方式来做,只需要做一个你可以使用的函数。例如:

function wpse_179693_echo_my_options_array_value() {
    $social_options = get_option( \'sultenhest_theme_social_options\' );
    if ( isset( $social_options[\'twitter\'] ) ) {
        echo $social_options[\'twitter\'];
    } else {
        return FALSE;
    }
}

结束

相关推荐

meaning of (array)function()

我看到了这段代码,其中包含了我以前从未见过的部分代码。在此场景中,(数组)的行为是什么?到目前为止,我知道用php创建数组的方法,但从未见过这种情况。// $this->settings = array_merge( $this->settings_defaults(), (array) get_option( $this->settings_slug, $this->settings_defaults() ) ); // &#x