我使用一个名为“Live Edit“允许作者和编辑编辑前端编辑内容。但问题是该插件允许任何登录用户编辑内容。我希望编辑(由插件指定。不是WP的默认编辑按钮)按钮根据其角色进行访问。我不知道如何根据角色使其可访问。因此,尝试使其仅显示给作者和更高角色。
我想在循环中做这样的事情。php:
<?php
global $current_user;
get_currentuserinfo();
if ( user_can( $current_user, "author" ) ){
// Show Role
// Show Subscriber Image
}
代码如下:
<?php post_class( \'post clearfix \' . $themify->get_categories_as_classes(get_the_ID()) . \' \' . $themify->get_post_color_class(get_the_ID()) ); if(function_exists("live_edit")){ live_edit(\'post_title, field1\'); } ?>
以及
<div <?php if(function_exists("live_edit")){ live_edit(\'post_content, myfield2\'); }?>>
<?php if( function_exists(\'the_field\') ) the_field(\'myfield1\'); ?> </div>
<?php if( function_exists(\'the_field\') ) the_field(\'myfield2\'); ?>
</div>
我不确定如何在模板中或通过函数执行。php。有谁能帮助我或引导我实现我的目标?
这是循环。pastebin的php-http://pastebin.com/9MVY64LJ
live edit类用于第8行和第57行。
最合适的回答,由SO网友:Paul Geisler 整理而成
您可以检查当前用户是否是Author (WP-Codex)
$current_user_is_allowed_to_edit = false;
if ( current_user_can(\'delete_posts\') ) {
$current_user_is_allowed_to_edit = true;
}
并在实现实时编辑功能的if语句中使用它。
以下是整个代码(针对用户角色):http://pastebin.com/fY7UPcB1
编辑:
以下是新代码(检查用户角色,如果是他自己的帖子):
// Check if User can Edit
$current_user_is_allowed_to_edit = false;
$user_ID = get_current_user_id();
$post_author_ID = the_author_meta(\'ID\');
if ( current_user_can(\'delete_posts\') && $post_author_ID == $user_ID ) {
$current_user_is_allowed_to_edit = true;
}
http://pastebin.com/NFtNVAGE
编辑#2:
现在,该按钮将仅为撰写文章的用户(作者)和具有更高用户角色的每个用户(编辑、管理员)显示。
// Check if User can Edit
// Set permission to false = \'not allowed\'
$current_user_is_allowed_to_edit = false;
// Get the ID of the user who watches this post
$user_ID = get_current_user_id();
// Get the ID of the Post-Writer
$post_author_ID = the_author_meta(\'ID\');
// Check if User has role \'Editor\' and higher OR is the Post-Writer
if ( current_user_can(\'delete_posts\') || $post_author_ID == $user_ID ) {
// Set permission to true = \'allowed\'
$current_user_is_allowed_to_edit = true;
}
代码:
http://pastebin.com/8u6bV018