我正在尝试向标题的自定义面板/部分添加自定义图像设置。
在函数中。php,我使用:
$wp_customize->add_setting(\'swag_header_logo\');
$wp_customize->add_control(new WP_Customize_Upload_Control($wp_customize,\'swag_header_logo\',array(
\'label\' => __(\'Logo\', \'frontend-theme\'),
\'section\' => \'swag_header_content_section\',
\'settings\' => \'swag_header_logo\'
)));
这会在customizer中显示并似乎起作用。但是,当试图将其显示在标题中时,会出现以下错误:
致命错误:调用/home/xxxxxx/public_html/wp content/themes/frontend theme/header中未定义的函数swag_header_logo()。php在线551
我在标题中使用的代码。php:
$swag_header_logo = get_theme_mod(\'swag_header_logo\');
以及
<?php swag_header_logo(); ?>
如何修复错误?
SO网友:Krzysiek Dróżdż
代码的第一部分看起来是正确的——很难说它是否会工作,因为它只是其中的一部分,但您所展示的部分没有任何问题。
问题在于这一行:
<?php swag_header_logo(); ?>
您在代码中的任何地方都没有定义这样的函数,因此无法调用它,这就是错误所说的(“调用未定义的函数swag\\u header\\u logo()”)。
那么如何修复呢
在此行中:
$swag_header_logo = get_theme_mod(\'swag_header_logo\');
您将附件的ID设置为
swag_header_logo
然后将此ID存储在
$swag_header_logo
变量
因此,如果要显示图像,只需使用:
echo wp_get_attachment_image( $swag_header_logo, \'<SIZE>\' ); // change size to real value
或者,如果只需要图像的URL:
echo wp_get_attachment_image_url( $swag_header_logo, \'<SIZE>\' ); // change size to real value