【问题标题】:Add do_shortcode to printf in WordPress child theme在 WordPress 子主题中将 do_shortcode 添加到 printf
【发布时间】:2019-11-24 21:27:43
【问题描述】:

我正在尝试使“版权文本”定制器字段呈现简码。
该字段通过footer.php 呈现,因此我可以覆盖子主题中的原始代码。
该代码使用printf 从定制器选项中的字段获取内容输入,如下所示:

<?php printf( wp_kses_post(__( '%s', 'slim' )), Slim_Opt::getOption( 'footer_copyright_text', 'Slim - eCommerce WP Theme' )); ?>

我尝试在 wp_kses_post 以及 printf 的全部内容周围添加 do_shortcode,但没有成功。
我试过用echo do_shortcode替换printf,但也没用。

有没有办法保留此代码以从 Customizer 检索设置值并渲染可能在该值内的任何短代码?

【问题讨论】:

  • 试试这个:&lt;?php $footer_option = do_shortcode( Slim_Opt::getOption( 'footer_copyright_text', 'Slim - eCommerce WP Theme' ) ); printf( wp_kses_post(__( '%s', 'slim' )), $footer_option ); ?&gt;这将首先处理customizer字段,然后将其传递给printf
  • 谢谢你,@disinfor!无论是否设置变量,这都非常有效。请将其作为答案发布,以便我可以选择它作为答案
  • 添加为答案!我很高兴它有效!

标签: php wordpress shortcode wordpress-shortcode


【解决方案1】:

为了使 shortcode 工作,需要首先从自定义程序选项中处理它 - 或者您可以使用 do_shortcode 输出选项

  1. 无变量选项:
echo do_shortcode( Slim_Opt::getOption( 'footer_copyright_text', 'Slim - eCommerce WP Theme' ) );
  1. 或者,您可以将输出保存在变量中:
<?php $footer_option = do_shortcode( Slim_Opt::getOption( 'footer_copyright_text', 'Slim - eCommerce WP Theme' ) ); 
printf( wp_kses_post(__( '%s', 'slim' )), $footer_option ); ?>

任何一种方式都可以,只取决于您是否希望将其传递给wp_kses_post()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    相关资源
    最近更新 更多