WordPress在functions.php中添加短代码

时间:2014-05-05 13:33:05

标签: php wordpress

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

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

  

调用未定义的函数add_shortcode

如何在functions.php

中添加短代码

2 个答案:

答案 0 :(得分:5)

如果您不想更改主题的functions.php文件(出于显而易见的原因),您有两种选择

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

  2. 中的其他功能没有命名冲突
  3. 使用您的自定义短代码创建一个新文件custom_shortcodes.php或其他内容,并将其添加到您的主题中。然后在你的主题functions.php中,在最后添加一行

    include 'custom_shortcodes.php';

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

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

答案 1 :(得分:1)

从你的functions.php引用你的shortcodes.php

所以你的functions.php可以像

一样开始
<?php

// define the path   
$shortcodes_path = get_template_directory() . '/shortcodes';

// ** Get the shortcodes.php **
require_once $shortcodes_path . '/shortcodes.php';

此代码现在将开始加载一个名为&#34; shortcodes.php&#34;的文件。存储在文件夹&#34;短代码&#34;。

定义路径后的行设置主题文件夹的快捷方式,并在那里设置一个名为&#34的子文件夹;短代码&#34;。
获取shortcodes.php后直接加载一个名为&#34; shortcodes.php&#34;的文件。存储在该文件夹&#34;短代码&#34;。因此,您可以使用$ shortcodes_path加载资源,将所有css,js等清理到文件夹中。

现在您需要将短代码文件放在此文件夹中,并使用正确的名称示例

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

保存并拍摄。如果您正在使用引导程序,则此短代码会将您的内容包装到div中,该div只会显示在移动设备上。

两件事: 1.因为这是php,它不需要关闭php标签,但如果你是一个清洁代码爱好者,你无论如何都会这样做。 2.总是使用&#34; do_shortcode($ content)&#34;因为这将允许用户使用包含在短代码中的短代码。 FE:如果您有上述移动设备的短代码和图标的短代码,则用户可以使用图标短代码仅在移动设备上显示。

太多了=)一切顺利 FAB