📜  do_shortcode 不起作用 - PHP (1)

📅  最后修改于: 2023-12-03 15:00:28.262000             🧑  作者: Mango

Do_shortcode不起作用 - PHP主题开发

如果你使用WordPress主题开发,你可能会遇到do_shortcode不起作用的问题。这是一个比较常见的问题,但是可以通过几种简单的方法来解决。

什么是do_shortcode函数?

do_shortcode函数是WordPress的一个内置函数,用于解析短代码。WordPress的用户可以通过插件或者主题添加短代码,这些短代码可作为输入参数传递给do_shortcode函数,然后返回解析后的HTML/文本输出。

do_shortcode函数不起作用的原因
  • 缺少WordPress默认的资源加载,如jquery等
  • 主题过度使用javascript/jQuery库,与WordPress常规库冲突
  • 短代码返回值中包含的HTML标签导致短代码不起作用
解决方法

方法1:确保WordPress所需的资源加载完整

尝试加入下列代码:

add_action( 'wp_enqueue_scripts', 'my_enqueue_assets' );
 
function my_enqueue_assets() {
    wp_enqueue_script( 'jquery' );
}

方法2:避免与WordPress常规库冲突

尝试在主题jQuery库文件中减少重复和不必要的代码和依赖项。在jquery库之前,尝试加入下列代码:

wp_deregister_script('jquery');
wp_register_script('jquery', '路径/到/jquery库', false, '1.11.0'); 

方法3:过滤短代码返回值

尝试使用WordPress中的其他过滤器函数,如“the_content”和“the_excerpt”,来确保输出不包含不必要的HTML标签,从而使do_shortcode函数正常工作。将过滤器添加到主题的functions.php文件中,如下所示:

add_filter('the_content', 'strip_shortcode_tags');
add_filter('the_excerpt', 'strip_shortcode_tags');
function strip_shortcode_tags($content) {
   $content = strip_shortcodes( $content );
   return $content; 
}
结论

以上是do_shortcode不起作用的一些常见解决方法。需要注意的是,解决方案可能因情况而异,因此请根据实际情况调整解决方案。希望以上信息对您有所帮助。