如何在页面内容中使用is_admin?

时间:2013-09-14 作者:Lucas Bustamante

我试图在一些Wordpress页面中添加“单击此处编辑此页面”按钮。

此按钮应仅在用户为admin时出现,这是在用户为admin时应出现的代码:

if ( current_user_can( \'manage_options\' ) ) {

<div class="action">
<div class="pe-container"><section class="row-fluid">
<div class="span12">
<h5>To edit this page <a href="wp-admin/post.php?post=179&amp;action=edit">CLICK HERE <i class="icon-right-open-mini"></i></a></h5>
</div>
</section></div>
</div>

} else {
    return false;
}
此代码输出以下内容:

Code Output

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

正如@Rarst所说,在帖子内容中使用PHP代码是一个坏习惯。但您可以使用另一种变通方法来仅为适当的用户显示节。

将以下代码添加到functions.php 文件:

add_shortcode( \'if_user_can\', \'wpse8170_show_content_if_user_can\' );
function wpse8170_show_content_if_user_can( $atts, $content = \'\' ) {
    $atts = shortcode_atts( array( \'capability\' => \'edit_posts\' ), $atts );
    return current_user_can( $atts[\'capability\'] ) ? $content : \'\';
}
此代码段将允许您使用[if_user_can capability="..."]...[/if_user_can] 在您的帖子中使用短代码。您可以使用capability="..." 属性如果用户具有所需的功能,则会显示短代码内容,否则页面上不会显示任何内容。

使用方法如下:

[if_user_can capability="edit_posts"]
<div class="action">
<div class="pe-container"><section class="row-fluid">
<div class="span12">
<h5>To edit this page <a href="wp-admin/post.php?post=179&amp;action=edit">CLICK HERE <i class="icon-right-open-mini"></i></a></h5>
</div>
</section></div>
</div>
[/if_user_can]

SO网友:Rarst

WordPress不允许在内容中使用PHP代码。虽然有一些解决方案可以避免这种情况,但从安全角度来看,这通常是个坏主意。

编辑链接通常在主题的模板文件中实现,而不是在内容中实现。若任意地将其放置在内容中是一项困难的要求,那个么您最好的选择可能是使用Shortcode API.

结束

相关推荐

将html添加到CPT主页/admin edit.php

我想在我创建的自定义帖子类型的标题下添加一些html。请参见此处图像中的区域:http://i.stack.imgur.com/rpkV3.png我尝试了使用不同的方法,包括post\\u row\\u actions(去润滑)过滤器来实现这一点。有人知道如何实现这一点的函数或方法吗?我希望使用一个动作钩或过滤器。我想添加一个简单的说明,可能还有一个图像到该区域。谢谢