Shortcode is not working

时间:2018-05-13 作者:Andrew Truckle

通过阅读教程,我创建了一个简单的快捷代码:

<?php
/*
Plugin Name: GT NoTranslate Shortcode
Description: Shortcode to wrap a span with the "notranslate" span around text.
Version: 0.1 BETA
Author: Andrew Truckle
Author URI: http://www.trucklesoft.co.uk
*/

function trucklesoft_gtspan_shortcode()
{
    return \'<span class="notranslate">\' . $content . \'</span>\';
}

add_shortcode( \'ts\', \'trucklesoft_gtspan_shortcode\' );
?>
我已将代码放入trucklesoft.php 然后把它放在一个叫做trucklesoftplugins 文件夹

我激活了插件。然而,当我编辑页面并将标题更改为:

[ts]This is the heading[/ts]
并预览它,它显示为:

[ts]This is the heading[/ts]
而不是<span class="notranslate">This is the heading</span>.

我做错了什么?

无论如何,我必须首先对代码进行更改,才能使其在页面内容中正常工作:

<?php
/*
Plugin Name: GT NoTranslate Shortcode
Description: Shortcode to wrap a span with the "notranslate" span around text.
Version: 0.1 BETA
Author: Andrew Truckle
Author URI: http://www.trucklesoft.co.uk
*/

function trucklesoft_gtspan_shortcode($atts, $content = null)
{
    return \'<span class="notranslate">\' . $content . \'</span>\';
}

add_shortcode( \'ts\', \'trucklesoft_gtspan_shortcode\' );
?>
我最初尝试使用此插件的位置是标题。当我查看源时,它会显示在以下位置:

<header class="entry-header">
    <h1 class="entry-title">Test</h1>
</header><!-- .entry-header -->

1 个回复
最合适的回答,由SO网友:cjbj 整理而成

看起来您正在尝试对标题字段应用短代码。这本身不受支持(只有帖子内容中的短代码才会自动计算),但通过将其添加为filter to get_the_tile 在插件中:

add_filter (\'the_title\', \'do_shortcode\');
(我假设您在内容字段中运行您的短代码并确定它在那里正常工作,从而排除了其他可能的问题)

已编辑功能中的过滤器get_the_title, 但它的名字是the_title.

结束

相关推荐

PHP code inside Shortcode

我有一个显示我上传的mp3链接的代码, <?php the_field(\'preview\'); ?> 但我想把它显示在这个短代码中,上面写着MP3文件的URL; <?php echo do_shortcode(\"[sc_embed_player fileurl=\"URL OF THE MP3 FILE\"]\"); ?> 我对这样做有意见。基本上,短代码是一个播放按钮,\\u字段预览显示播放按钮播放mp3链接所需的mp3链接。