WordPress在functions.php中增加了短代码


WordPress adding shortcodes in functions.php

我想在WordPress的functions.php中添加一个短代码,这样我就可以在我的网站中使用我的功能了。

问题是,显然shortcodes.phpfunctions.php之后包含,所以它给了我一个错误:

调用未定义函数add_shortcode

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

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

  1. 创建一个子主题,并在那里用你的短代码创建一个functions.php文件。只要与父主题的functions.php

  2. 中的其他函数没有命名冲突,Wordpress就会识别这个文件并自动为您包含它。
  3. 创建一个新文件,custom_shortcodes.php或其他东西,其中包含您的自定义短代码,并将其添加到您的主题。然后在主题的functions.php中,在最后添加

    一行

    include 'custom_shortcodes.php';

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

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

从functions.php到shortcodes.php的引用

function。php的开头可以是

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

这段代码现在将开始加载一个名为"shortcodes.php"的文件,该文件存储在"shortcodes"文件夹中。

定义路径后的行设置了一个快捷方式到你的主题文件夹,并在那里的子文件夹"shortcodes"。
直接在Get The shortcodes.php之后的行会加载一个名为"shortcodes.php"的文件,该文件存储在"shortcodes"文件夹中。因此,您可以将所有css、js等清理后的文件放在一个文件夹中,使用$shortcodes_path加载资源。

现在您需要将shortcodes文件放入该文件夹中,并使用正确的名称,例如

<?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");  

保存并拍摄。如果你正在使用bootstrap,这个短代码将把你的内容包装成一个div,这个div只会在移动设备上显示。

两件事:1. 因为这是php,它不需要结束php标记,但如果你是一个干净的代码爱好者,你还是会这样做。2. 总是使用"do_shortcode($content)",因为这将允许用户使用在短代码中包装的短代码。FE:如果你有上面的移动设备短代码和图标短代码,用户可以使用图标短代码只显示在移动设备上。

SO MUCH WOW =)一切顺利工厂