函数仅显示短码的第一个实例

时间:2012-08-23 作者:HjalmarCarlson

我需要在我的主题中添加一个函数,以删除帖子中的其他短代码实例。

首先,我想知道我是不是走错路了,但我有一个主题,它彻底改变了帖子的布局方式。在帖子中,我们寻找媒体和快捷码,然后将它们显示在页面顶部,基本上是将其从内容中剥离出来,放在标题之前。

条件语句检查特征图像或库短代码是否存在,然后将其打印出来。我遇到的问题是,在The\\u content()中再次打印库。我想做的是创建一个函数,在第一次打印短代码后剥离它。

我知道这个hook remove\\u shortcode(),但这将删除该短代码的所有实例,其中我只想在打印第一个后删除它。

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

向短代码处理程序添加一个静态变量,以检查是否已调用该短代码。

示例代码

add_shortcode( \'wpse62826\', \'wpse_62826_shortcode\' );

function wpse_62826_shortcode()
{
    static $done = FALSE;

    // Nothing to do.
    if ( $done )
    {
        return;
    }

    if ( is_singular() )
    {
        $done = TRUE;
    }

    return \'<b>I run once on singular views!</b>\';
}

结果

enter image description here

结束

相关推荐

How to load shortcode sooner

我正在尝试向菜单添加一个快捷码,菜单项会显示,但不会显示快捷码输出。我认为问题是,快捷码在菜单运行之后运行,因此快捷码输出不存在。有没有办法更快地加载短代码?谢谢编辑:抱歉,这里是://--Nav Menu function add_profile_link_to_nav(){ if ( is_user_logged_in() ) { ?> <ul> <li class=\"menu-item\"id=\"one\"> &