使用__s主题的自定义快捷方式代码不起作用

时间:2017-07-12 作者:S. Coll

我正在尝试在自定义主题上注册一个新的短代码。

在函数中。php我创建了一个基本的测试函数,如下所示

function get_second_image($atts) {
    echo ‘test’;
}
并在下面登记

add_shortcode( ‘case_study_second_image_sc’, ‘get_second_image’ );
使用所见即所得编辑器,我插入了短代码[case\\u study\\u second\\u image\\u sc],但它只是作为原始代码显示在页面上。

我正在使用调用页面内容

<?php the_content(); ?>
在模板文件中。

根据另一个SE问题的信息,我已经在我的主题文件中搜索了任何添加或删除过滤器功能,但似乎没有任何会妨碍我的主题。

2 个回复
最合适的回答,由SO网友:Dave Romsey 整理而成

请确保对字符串使用直引号,如“”或“,而不是卷曲引号“”、“”、“”或“”。

此外,短代码应该返回其输出,而不是回显它。

当WordPress在没有回调的情况下找到一个短代码时,它会显示输入的短代码标记,例如。[case_study_second_image_sc].

快捷码标记‘case_study_second_image_sc’ 以及相关的callback ‘get_second_image’ 将由PHP解析为常量。这意味着我们的短代码没有有效的短代码标记或回调函数,WP将只输出用户输入的短代码。

打开错误报告有助于发现这些棘手的错误(有时,在复制/粘贴的代码中会出现卷曲引号,在某些编辑器中很难区分引号)。

Use of undefined constant ‘case_study_second_image_sc’ - assumed \'‘case_study_second_image_sc’\'

Use of undefined constant ‘get_second_image’ - assumed \'‘get_second_image’\'

SO网友:Rick Hellewell

请参见此处的文档https://codex.wordpress.org/Shortcode_API. 函数需要返回要替换短代码的值。\'echo\' 不会显示任何内容。你需要return \'test\'; 插入文本\'test\' 在内容中。

从上述链接中的文档(添加了重点):

当显示\\u内容时,短代码API将解析任何已注册的短代码,例如“[myshortcode]”,分离并解析属性和内容(如果有),并将相应的短代码处理程序函数传递给它们。任意字符串returned (not echoed) 将短代码处理程序插入到帖子正文中,以代替短代码本身。

希望这有帮助。

结束

相关推荐

Use WP_Query in shortcode

我正在尝试从前四篇文章中获取元信息,这些文章的元键等于Sedan,然后对这些文章的元进行格式化,以便设置图库类型的显示框。我相信这与我的方法有关,因为我仍处于学习曲线的陡峭部分。如有任何意见、建议或回答,将不胜感激。使用此代码,我试图生成的HTML不会显示在前端。好像我什么都没做似的。add_shortcode(\'sedan-tabs\',\'build_sedan_tabs\'); function build_sedan_tabs(){ $args1 = array(