我写了一个wordpress插件,它可以从ACF字段中读取值并输出图像。图像是通过一个短代码获取的。
我是一个初学者,对此有一些问题:
- 这种方法对性能有影响吗?
- 哪种解决方案是最佳做法或更高效?
- 是否有可能优化插件的代码?
例如,将图像设置为“全局”不是更好吗?如果一个图像发生变化,我必须在所有地方都进行更改,这是一项很大的工作。
$auswahl = get_field('dunstesse_energielabel');
if( $auswahl == 'A'){
$result = '<img class="energie" src="/wp-content/uploads/EEK_Buttons_2021-A-re.png">' ;
} else if ( $auswahl == 'B' ){
$result = '<img class="energie" src="/wp-content/uploads/EEK_Buttons_2021-B-re.png">' ;
} else if ( $auswahl == 'C' ){
$result = '<img class="energie" src="/wp-content/uploads/EEK_Buttons_2021-C-re.png">' ;
} else if ( $auswahl == 'D' ){
$result = '<img class="energie" src="/wp-content/uploads/EEK_Buttons_2021-D-re.png">' ;
} else if ( $auswahl == 'E' ){
$result = '<img class="energie" src="/wp-content/uploads/EEK_Buttons_2021-E-re.png">' ;
} else if ( $auswahl == 'F' ){
$result = '<img class="energie" src="/wp-content/uploads/EEK_Buttons_2021-F-re.png">' ;
} else if ( $auswahl == 'G' ){
$result = '<img class="energie" src="/wp-content/uploads/EEK_Buttons_2021-G-re.png">' ;
}
return $result;
}
add_shortcode('getEnergieDunstesse' , 'get_energie_dunstesse');
function get_energie_flachschirmhaube() {
$auswahl = get_field('flachschimhaube_energielabel');
if( $auswahl == 'A'){
$result = '<img class="energie" src="/wp-content/uploads/EEK_Buttons_2021-A-re.png">' ;
} else if ( $auswahl == 'B' ){
$result = '<img class="energie" src="/wp-content/uploads/EEK_Buttons_2021-B-re.png">' ;
} else if ( $auswahl == 'C' ){
$result = '<img class="energie" src="/wp-content/uploads/EEK_Buttons_2021-C-re.png">' ;
} else if ( $auswahl == 'D' ){
$result = '<img class="energie" src="/wp-content/uploads/EEK_Buttons_2021-D-re.png">' ;
} else if ( $auswahl == 'E' ){
$result = '<img class="energie" src="/wp-content/uploads/EEK_Buttons_2021-E-re.png">' ;
} else if ( $auswahl == 'F' ){
$result = '<img class="energie" src="/wp-content/uploads/EEK_Buttons_2021-F-re.png">' ;
} else if ( $auswahl == 'G' ){
$result = '<img class="energie" src="/wp-content/uploads/EEK_Buttons_2021-G-re.png">' ;
}
return $result;
}
add_shortcode('getEnergieFlachschirmhaube' , 'get_energie_flachschirmhaube');
function get_energie_induktion() {
$auswahl = get_field('induktions-kochfeld_energielabel');
if( $auswahl == 'A'){
$result = '<img class="energie" src="/wp-content/uploads/EEK_Buttons_2021-A-re.png">' ;
} else if ( $auswahl == 'B' ){
$result = '<img class="energie" src="/wp-content/uploads/EEK_Buttons_2021-B-re.png">' ;
} else if ( $auswahl == 'C' ){
$result = '<img class="energie" src="/wp-content/uploads/EEK_Buttons_2021-C-re.png">' ;
} else if ( $auswahl == 'D' ){
$result = '<img class="energie" src="/wp-content/uploads/EEK_Buttons_2021-D-re.png">' ;
} else if ( $auswahl == 'E' ){
$result = '<img class="energie" src="/wp-content/uploads/EEK_Buttons_2021-E-re.png">' ;
} else if ( $auswahl == 'F' ){
$result = '<img class="energie" src="/wp-content/uploads/EEK_Buttons_2021-F-re.png">' ;
} else if ( $auswahl == 'G' ){
$result = '<img class="energie" src="/wp-content/uploads/EEK_Buttons_2021-G-re.png">' ;
}
return $result;
}
add_shortcode('getEnergieInduktion' , 'get_energie_induktion');
function get_energie_glaskeramik() {
$auswahl = get_field('glaskeramik-kochfeld_energielabel');
if( $auswahl == 'A'){
$result = '<img class="energie" src="/wp-content/uploads/EEK_Buttons_2021-A-re.png">' ;
} else if ( $auswahl == 'B' ){
$result = '<img class="energie" src="/wp-content/uploads/EEK_Buttons_2021-B-re.png">' ;
} else if ( $auswahl == 'C' ){
$result = '<img class="energie" src="/wp-content/uploads/EEK_Buttons_2021-C-re.png">' ;
} else if ( $auswahl == 'D' ){
$result = '<img class="energie" src="/wp-content/uploads/EEK_Buttons_2021-D-re.png">' ;
} else if ( $auswahl == 'E' ){
$result = '<img class="energie" src="/wp-content/uploads/EEK_Buttons_2021-E-re.png">' ;
} else if ( $auswahl == 'F' ){
$result = '<img class="energie" src="/wp-content/uploads/EEK_Buttons_2021-F-re.png">' ;
} else if ( $auswahl == 'G' ){
$result = '<img class="energie" src="/wp-content/uploads/EEK_Buttons_2021-G-re.png">' ;
}
return $result;
}
add_shortcode('getEnergieGlaskeramik' , 'get_energie_glaskeramik');
2条答案
按热度按时间x7yiwoj41#
就代码可读性而言,您可以将每个函数重构为以下形式:
对于
$defaultValue
,您需要指定在没有选择允许选项的情况下要返回的内容。至于性能,这并不重要,你不会在易用性上优化这些东西,因为微优化是糟糕的优化。
j5fpnvbx2#
从理论上讲,您的方法,不应该对性能要求过高,因为它只在短代码出现在页面或帖子上时才运行,但是,如果在同一个页面上多次调用
get_field()
函数,那么使用该函数可能会很慢。你可以使用一个switch语句而不是多个if-else语句,这将使代码更可读和有效。为了优化插件的代码,你可以重构函数以使用switch语句。
为了避免在任何地方更改图像,可以使用集中式方法,将图像URL存储在数组中,然后使用ACF字段的值作为键在函数中引用它们。
您只需要在一个位置更新图像URL,而不是在代码中的多个位置更新。