我想在WordPress的functions.php
中添加一个短代码,因此我可以在我的网站中使用我的功能。
问题是,显然shortcodes.php
包含在 functions.php
之后的,所以它给了我一个错误:
调用未定义的函数
add_shortcode
如何在functions.php
?
答案 0 :(得分:5)
如果您不想更改主题的functions.php
文件(出于显而易见的原因),您有两种选择
创建一个子主题并在其中创建一个包含短代码的functions.php
文件。 Wordpress将识别此文件并自动为您包含该文件,只要与您的父主题functions.php
使用您的自定义短代码创建一个新文件custom_shortcodes.php
或其他内容,并将其添加到您的主题中。然后在你的主题functions.php
中,在最后添加一行
include 'custom_shortcodes.php';
这样您就可以编辑自定义短代码,而无需更改主题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