我在前面提交了一个WordPress主题,拒绝的原因之一如下:
全局变量应始终位于函数或类中,并且应限制使用;只有在主题确实需要的情况下。强烈建议不要仅仅为了避免全局名称空间中的内容而使用它们,因为它们是糟糕的编码实践。
Im使用Smof Option Framework 对于主题选项,下面是我的一个主题文件中的示例代码:
global $smof_data;
$td_header_manager_wide = $smof_data[\'td_header_blocks\'][\'enabled\'];
if ( $td_header_manager_wide ) {
foreach ( $td_header_manager_wide as $key=>$value ) {
switch( $key ) {
case \'block_main_menu_wide\': // wide menu
echo \'<div id="td-sticky" class="wide-menu \' . $td_sticky . \'">\';
echo \'<div id="wide-menu">\';
include( get_template_directory() . \'/parts/menu-header-logo.php\');
echo \'</div>\';
echo \'</div>\';
break;
}
}
看来global $smof_data; 应该在一个函数中,但我真的不知道如何完成这项任务以避免包含全局$smof\\u数据;在我需要的所有主题文件中。使用@jgraup方法更新代码:
function matilda_customize_styles() {
$css = \'<style type="text/css" media="screen">\';
if ( ! empty( SMOFData::get( \'td_body_font_family\' ) )
&& SMOFData::get( \'td_body_font_family\' ) != \'none\' )
{
$css .= \'body{font-family:\' . esc_html( SMOFData::get( \'td_body_font_family\' ) ) . \';}\';
}
}
任何帮助都将不胜感激。谢谢