奇怪的短码错误:短码是否需要依赖关系?

时间:2017-10-06 作者:The WP Intermediate

是否存在与哪个短代码相关的依赖项?

[news_weber][/news_weber] → 不起作用,但与一起使用时do_shortcode 它起作用的方法。

我已安装Ultimate shortcode plugin 检查是否有效。该插件的所有短代码都能正常工作,奇怪的是,一旦安装了该插件,我的自定义短代码也能正常工作,一旦卸载,我的自定义短代码就停止工作。连接是什么?

是否有任何依赖项没有包含在我的主题中,并且一旦安装了第三方插件,它们就会被包括在内?

更新→post(edit mode) editor, 它还可以与do_shortcode 方法,但当我们使用默认文本小部件并将我们的快捷码放在那里时,它不起作用。然而,如果我们像我上面告诉你的那样安装插件,它也可以在这里工作

enter image description here

what is the issue?

更新2:代码→

function burner() {
        ob_start();
        $random=rand(1,10000);
        ?>
        //some code
        <?php
        return ob_get_clean();
}
add_shortcode(\'news_burner\', \'burner\');
更新3短代码是插件领域,所以我将它们转移到插件中,但同样的问题是它们不起作用,但当我安装上述第三方插件时,它们确实起作用。

2 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

问题1因为您正在使用new_weber 但你正在注册news_burner, 他们不一样

因此,请使用:

[news_burner]

只有当它包含插件不包含的内容时,才需要一个结束短代码。

问题2:短代码在现成的文本小部件中不起作用,您可以通过插件添加该功能,请参见以下问题/答案:

Shortcode in Text Widget not working

这就是为什么它与do_shortcode 但不是在小部件中。它也适用于帖子内容

SO网友:Patrice Poliquin

根据您的问题和我对您问题的理解,您必须确保从函数文件中调用了您的短代码。

首先,你需要写<?php echo do_shortcode("[news_weber]"); ?> 为了让它通过PHP工作。基于您的问题,我认为您不需要右括号,因为短代码可以自动关闭。

文件:https://developer.wordpress.org/reference/functions/do_shortcode/

但是,即使您键入了正确的代码,您仍然需要在函数文件中授予对该短代码的访问权限。

您可以创建一个名为shortcodes.php 从你的functions.php 文件

if ( ! function_exists( \'my_theme_setup\' ) ) :

   function my_theme_setup() {

   // Custom shortcodes
   require_once( "inc/shortcodes.php" );
}

endif;

add_action( "after_setup_theme", "my_theme_setup" );
在你的shortcode.php 可以调用函数的文件。

function news_weber_func( $atts ) {
    // Your custom code
}
add_shortcode( \'news_weber\', \'news_weber_func\' );
官方文件:https://codex.wordpress.org/Function_Reference/add_shortcode

我希望这对你有帮助。

结束

相关推荐

Shortcode syntax errors

试图编写一个短代码来创建库,但我遇到了一个分析错误。我的foreach 循环需要校正并返回正确的输出。有什么帮助吗?function allphotos_shortcode(){ $images = get_field(\'fl_gallery\'); if( $images ) { $output .= \'<ul>\'; foreach( $images as $image ) :