快捷码在自定义选项字段中不起作用,有什么解决方案吗?

时间:2019-05-31 作者:Avigo

我在主题定制器中有一个自定义字段,允许定义自己的版权信息。我创建了一个显示当前年份的短代码。当有人将短代码粘贴到textarea中时,如何使其工作?

我使用Kirki框架创建主题选项。

Kirki::add_field( \'my_customizer\', array(
  \'type\'     => \'editor\',
  \'settings\' => \'copyright\',
  \'label\'    => __( \'Content\', \'mytheme\' ),
  \'section\'  => \'section_footer\',
  \'default\'  => __( \'Copyright ⓒ All rights reserved.\', \'mytheme\' ),
  \'description\' => __( \'You can use [current-year] shortcode if you want.\', \'mytheme\' ),
) );
要显示以上选项,我将其添加到页脚。php:

echo Kirki::get_option( \'my_customizer\', \'copyright\' );
我在网站上看到的内容:

Copyright ⓒ [current-year] All rights reserved.
All rights reserved. ⓒ [current-year] by XYZ 
All rights reserved. ⓒ 2016 - [current-year]
我需要实现的目标:

Copyright ⓒ 2019 All rights reserved.
All rights reserved. ⓒ 2019 by XYZ 
All rights reserved. ⓒ 2016 - 2019
有什么解决方案/想法吗?谢谢

1 个回复
最合适的回答,由SO网友:Antti Koskinen 整理而成

如果保存了短代码字符串,请尝试使用do_shortcode 函数,它将短代码转换为内容。

$saved_shortcode = get_option( \'my_customizer\', \'copyright\' );
if ( $saved_shortcode && is_string( $saved_shortcode ) ) {
echo do_shortcode( $saved_shortcode );
}
有关开发人员手册中的功能的更多信息,https://developer.wordpress.org/reference/functions/do_shortcode/

EDIT

另一个选项是直接在页脚模板上回显年份,而无需先从数据库中获取短代码字符串,然后再进行渲染。

相关推荐

Geoip shortcodes in comments

我想知道如何从geoip插件添加国家/地区短代码(https://pl.wordpress.org/plugins/geoip-detect/) 输入注释字段。[geoip\\u detect2 property=“country”]据我所知,注释字段必须是所见即所得字段(默认情况下不是文本)。还有其他方法吗?通过自定义php函数或其他方式?你好,Michal