在页面中只执行一次快捷代码

时间:2017-08-03 作者:Toniq

有没有办法防止在同一页中运行多个短代码?如果已执行短代码,则不运行其他短代码。

add_shortcode(\'foo\', \'foo_add_player\');
function foo_add_player($atts){
   //do not run twice
}

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

设置标志,如$already_run 设置为静态并为其提供初始值false. 然后检查该值是否为真。如果没有,则执行一次性操作,然后设置$already_runtrue. 下次调用此函数时,它不会重新分配静态属性,而是使用代码末尾设置的值。因此,它将跳过第二次和后续调用。

function foo_add_player($atts) {
    static $already_run = false;
    if ( $already_run !== true ) {
        // do stuff here
    }
    $already_run = true;
}

结束

相关推荐

Using shortcode in Post title

我有很多帖子,其中我有本月的帖子标题。当月底,手动更改所有帖子有点烦人。因此,我创建了一个短代码来显示当前月份。我使用了add_filter( \'the_title\', \'do_shortcode\' );执行标题中的短代码。一切正常。问题是,在元标题中,显示的是原始短代码,而不是输出。有什么建议可以帮我解决吗。提前谢谢。