无法使用$DATA[‘Variable’]获取选项

时间:2013-01-21 作者:user771417

Can\'t get options with $data[\'variable\'].

(我正在使用SMOF-略微修改的选项框架)

例如,在标题中。php(index.php、footer.php等):

global $data;
$logo_type = stripslashes( $data[\'type_logo\'] );
什么都没发生,变数$logo_type 不包含任何内容。

但是如果我在css样式中使用相同的代码。php-一切正常。来自\\css\\style的代码。php:

<?php 

/* Background Body */ 
$bg_color = stripslashes ( $data[\'ct_bg_color\'] );

?>

/* Body BG Color */ 
body, .body-class { background-color: <?php echo $bg_color; ?> 
}
作为框架一部分的功能:

/*-----------------------------------------------------------------------------------*/
/* Generate a static css file from the defined options
/*-----------------------------------------------------------------------------------*/
// This function will generate a static css file which you can use in your theme.
// Some examples of the dynamically generated options has been defined in css/styles.php
function generate_options_css($newdata) {

    $data = $newdata;   
    $css_dir = get_stylesheet_directory() . \'/css/\'; // Shorten code, save 1 call
    ob_start(); // Capture all output (output buffering)

    require($css_dir . \'styles.php\'); // Generate CSS

    $css = ob_get_clean(); // Get generated CSS (output buffering)
    file_put_contents($css_dir . \'options.css\', $css, LOCK_EX); // Save it

}
链接到框架文件:https://github.com/sy4mil/Options-Framework/tree/master/admin/functions

第一次遇到此问题。。。无法理解问题所在(php、web托管等)

还有其他人遇到此问题吗?

2 个回复
SO网友:Chip Bennett

这实际上是PHP 问题,而不是WordPress 问题

问题是全局变量不会通过include()/require() 从模板文件调用到header.php.

解决方案是定义$data 在你全球化之后。

由于不知道你的选择框架或你的主题,我只能笼统地回答;也就是说,您可能会定义$data 像这样:

global $data;
$data = get_option( \'some_option\' );

global $data;
$data = framework_get_options();

Hint: take a look at /css/styles.php to see how your framework/Theme does this, specifically.

SO网友:Bucur Ion

也许这有助于我使用它。。。

单个数据:

<?php global $data; echo $data[\'your_option_id\']; ?>
条件数据:

<?php global $data; ?>
<?php if($data[\'your_option_id\']): ?>
   <?php echo $data[\'your_option_id\']; ?>
<?php endif; ?>
带默认数据的条件数据

<?php global $data; ?>
<?php if($data[\'your_option_id\']): ?>
   <?php echo $data[\'your_option_id\']; ?>
<?php else: ?>
   My Default Data
<?php endif; ?>

结束

相关推荐

性能问题:index.php与soronomy-$soronomy.php

在我们最近的一个项目中,我计划使用该索引。php文件以显示不同的分类法布局。基本上我计划使用is_tax( \'sometaxonomy\' ) 显示不同分类的数据/循环。我是否应该解决任何性能问题?使用taxonomy-$taxonomy是否更好。在这种情况下是php吗?如果是,为什么?此外,还有一个相关的问题:使用此技术时,我需要自定义循环。使用是否安全(性能方面)global $query_string 要更改查询?或者我应该再次简单地使用分类法-$分类法。php?提前感谢