通过新的定制器设置将自定义图像添加到页眉

时间:2019-05-05 作者:Xarcell

我正在尝试向标题的自定义面板/部分添加自定义图像设置。

在函数中。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(); ?>
如何修复错误?

1 个回复
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

相关推荐