Freeze a shortcode in place?

时间:2015-10-21 作者:Jamie

有没有办法“冻结”一个适当的短代码,以便非管理员无法对其进行编辑?

假设我有这样一个页面:

[短代码]

页面文本

[其他短代码]

是否有一种方式可以让非管理员看到以下页面:

[短代码]

页面文本

[其他短代码]

斜体短代码在哪里不可触摸/不可编辑?

2 个回复
SO网友:iSS

好吧,没有办法那样做,但你可以挂上过滤器the_content 并在do_shortcode( \'before_content_shortcode\' ) 并将do_shortcode( \'after_content_shortcode\' ).

function so_modify_the_content( $content ) {
    $prependContent = do_shortcode( \'pre_content_shortcode\' );
    $appendContent  = do_shortcode( \'post_content_shortcode\' );

    $content        = $prependContent . $content . $appendContent;

    return $content; 
}

add_filter( \'the_content\', \'so_modify_the_content\' );

SO网友:mjakic

您可以检查用户功能(也称为非管理员)并删除不希望格式化的短代码:

。。。在函数中。php

$cuser = wp_get_current_user();
if (!isset($cuser->allcaps[\'administrator\']) || !$cuser->allcaps[\'administrator\']) {
    remove_shortcode(\'your_shortcode_tag_name\');
}
还可以使用删除所有短代码remove_all_shortcodes 作用

相关推荐

Namespaced shortcode?

我正在改造一个旧的WP站点,该站点有许多自定义的短代码,显然由于代码当前的组织方式,这些短代码在性能方面付出了代价。当然,我可以修复优化不好的代码,使用十几个短代码,并且一天就可以完成,但我想知道如何更好地组织它们。根据WordPress\'documentation, 建议将它们放在插件中并在上初始化init. 我们可以通过这样“命名”它们来减少这个钩子中的负载吗?[com.company shortcode attr=\"attr\" prop=\"prop\"] 有人尝试过这样的解决方案吗