我在WordPress中有两列页面设计。
我想使用功能命令根据右侧列中分配的WordPress类别显示其他小部件。
我的问题是:我的方法是“正确的方法”吗?我在“ IF语句”中有3组数组
我要补充一点,就是可以使用!
但是-我想确保正确完成:
function my_custom_sidebar_display( $sidebar ) {
// Return a different sidebar for different categories
if ( in_category(array('Apples','Pears','Peaches')) ) {
return 'sidebar-fruit';
}
if ( in_category(array('potatoes','carrots','celery')) ) {
return 'sidebar-vegetables';
}
}
if ( in_category(array('monkeys','rhino','cheetah')) ) {
return 'sidebar-animals';
}
// Return theme defined sidebar area
else {
return $sidebar;
}
}
add_filter( 'ocean_get_sidebar', 'my_custom_sidebar_display' );
答案 0 :(得分:0)
为了以后的可读性和其他开发人员的注意,else if
强调只有一个语句是正确的,否则不是100%明显。
您的功能将更改为以下内容:
function my_custom_sidebar_display( $sidebar ) {
// Return a different sidebar for different categories
if ( in_category(array('Apples','Pears','Peaches')) ) {
return 'sidebar-fruit';
} else if ( in_category(array('potatoes','carrots','celery')) ) {
return 'sidebar-vegetables';
} else if ( in_category(array('monkeys','rhino','cheetah')) ) {
return 'sidebar-animals';
} else { // Return theme defined sidebar area
return $sidebar;
}
}
通常,else if
的优势在于效率更高。想象一下,如注释中所建议,您不会立即返回,而是将值保存在中间变量中并最终返回该变量:
if ($letter === 'a') { $value = "1";}
if ($letter === 'b') { $value = "2";}
if ($letter === 'c') { $value = "3"; }
return $value;
这样,即使您知道其中只有一个条件为真,也将检查所有三个条件。 (这只是一个例子,我也认为立即返回而不是填充另一个变量是可以的)