WordPress在functions.php中添加短代码

WordPress在functions.php中添加短代码,php,wordpress,Php,Wordpress,我想在WordPress的functions.php中添加一个短代码,这样我就可以在我的站点中使用我的函数了 问题是,显然shortcode.php包含在functions.php之后,因此它给了我一个错误: 调用未定义的函数add\u shortcode 如何在functions.php中添加短代码?如果您不想更改主题的functions.php文件(出于明显的原因),您有两个选项 创建一个子主题,并创建一个functions.php文件,其中包含您的短代码。Wordpress将识别此文件并自

我想在WordPress的
functions.php
中添加一个短代码,这样我就可以在我的站点中使用我的函数了

问题是,显然
shortcode.php
包含在
functions.php
之后,因此它给了我一个错误:

调用未定义的函数
add\u shortcode


如何在
functions.php
中添加短代码?

如果您不想更改主题的
functions.php
文件(出于明显的原因),您有两个选项

  • 创建一个子主题,并创建一个
    functions.php
    文件,其中包含您的短代码。Wordpress将识别此文件并自动为您包含它,只要您的父主题的
    functions.php

  • 创建一个新文件,
    custom_shortcodes.php
    或其他文件,其中包含您的自定义短代码,并将其添加到主题中。然后在主题的
    functions.php
    末尾添加一行

    包括“custom_shortcode.php”

  • 这将允许您编辑自定义短代码,而无需更改主题
    functions.php
    。只要知道如果更新主题,就必须将上面的行添加回
    functions.php
    。就我个人而言,我总是使用一个儿童主题,然后使用第一种方法,但两者都是可以接受的


    最后一个选择,也是解决@xatenev问题的方法,是创建一个插件并将所有的短代码添加到插件中。这使您的自定义代码“可移植”,并允许您在已安装的任何主题上使用它,而无需进入主题文件夹并添加/更改文件。

    从functions.php引用到shortcode.php

    所以你的functions.php可以像

    <?php
    
    // define the path   
    $shortcodes_path = get_template_directory() . '/shortcodes';
    
    // ** Get the shortcodes.php **
    require_once $shortcodes_path . '/shortcodes.php';
    

    请更具体一些。您是指主题文件夹中的functions.php吗?您使用的是哪个版本的WordPress?我指的是我的wp includes中的functions.php。或者有没有其他方法可以在一个页面上包含PHP?我不知道还有什么更好的办法。谢谢不要在
    wp includes
    目录中添加/更改任何内容,这是wp的核心内容,除非您确切地知道自己在做什么,否则不应将其弄乱。您应该将其添加到活动主题中的
    functions.php
    。如果您使用的是子主题,您可以在itThanks celeriko中仅使用您的短代码向其添加一个
    functions.php
    ,我现在通过在中使用我的短代码函数创建一个新插件来解决此问题。谢谢,我现在通过创建一个新插件来解决此问题,该插件包含所有短代码函数和短代码。谢谢好办法!我将为未来银行中的任何人更新我的答案——无论如何,我通过创建一个新的插件来解决这个问题,在这个插件中我存储了所有需要短代码的函数。我不知道所有教程中的“functions.php”都是主题-functions.php,而不是wp includes/中的functions.php。无论如何谢谢你!
    <?php
    /* show content on mobilephones only */
        function showm( $atts, $content = null ) { 
            $content = wpautop(trim($content));
            return '<div class="visible-xs">'.do_shortcode($content).'</div>';  
        }  
        add_shortcode("show-m", "showm");