我想在WordPress的functions.php
中添加一个短代码,这样我就可以在我的网站中使用我的功能了。
问题是,显然shortcodes.php
在 functions.php
之后包含,所以它给了我一个错误:
调用未定义函数
add_shortcode
如何在functions.php
中添加短代码?
如果您不想更改主题的functions.php
文件(出于明显的原因),您有两个选项
-
创建一个子主题,并在那里用你的短代码创建一个
functions.php
文件。只要与父主题的functions.php
中的其他函数没有命名冲突,Wordpress就会识别这个文件并自动为您包含它。 创建一个新文件,
一行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 =)一切顺利工厂