もうちょっとしたら、うちのほうでも試してみますが(今日、ちょうど似たような作業をする予定だったので)
edit posts はオフに
edit published posts をオンに
これではお望みの動作にはなりませんでしたか?
kvex 様
ご返答ありがとうございます。
edit postsをOffにした時点で、edit published postsのOnOffに関わらず「新規作成」はもとより、既存記事にアクセス出来なくなります(メニューが消える)
遅くなりました。
ほんとですね。確かに。
なにかやりようがあるかな。
User Role Editor で publish posts を外せばOKかと。
orangemintさん>
そういう考え方も一つですね。
souyukiyaさん、新規投稿メニューは出てきますが、実際に公開はできないということです。
うちだと、それはクライアントにも確認済みでNGだったのですが、souyukiyaさんのところではもしそれでOKなら良いですね。
edit posts をオフにした場合、管理画面から投稿にアクセス出来ませんが、フロントエンドエディタが入っていれば、サイト側から編集は出来ます。
管理画面のメニューの並びを変えたいと思い、admin menu editor というプラグインを入れたんですが、これの設定で、「新規追加」の Required capability を管理者とすると、投稿者権限でログインしたときに「投稿」のみ表示され、「新規追加」は表示されません。
#管理者以外で[新規投稿]なメニュー/ボタンを削除する方法。
テーマフォルダの functions.php (の <?php 〜 ?>
の間)に以下を追加すれば OK◎
// 管理メニューから[新規追加]を削除
add_action( 'admin_menu', 'my_admin_menu' );
function my_admin_menu() {
global $submenu;
if ( ! current_user_can( 'administrator' ) ) {
foreach ($submenu as $parent => $sub) {
foreach ($sub as $index => $data) {
if ( 0 === strpos( $data[2], 'post-new.php' )
|| 0 === strpos( $data[2], 'media-new.php' ) // メディアも削除
)
unset( $submenu[$parent][$index] );
}
}
}
}
// ヘッダのドロップダウンメニューから[新規投稿]を削除
add_filter( 'favorite_actions', 'my_favorite_actions' );
function my_favorite_actions( $actions ) {
if ( ! current_user_can( 'administrator' ) ) {
foreach ($actions as $key => $action) {
if ( 0 === strpos( $key, 'post-new.php' )
|| 0 === strpos( $key, 'media-new.php' ) // メディアも削除
)
unset( $actions[$key] );
}
}
return $actions;
}
// 投稿一覧ページの h2 横の[新規追加]ボタンを削除
add_action( 'admin_print_footer_scripts', 'my_adminprint_footer_scripts', 90 );
function my_adminprint_footer_scripts() {
if ( ! current_user_can( 'administrator' ) )
echo '
<script type="text/javascript">
//<![CDATA[
jQuery(document).ready(function($){
$( "h2>a.add-new-h2").remove();
});
//]]>
</script>
';
}
kvex 様
ご連絡が遅れました。
新規作成が可能だとゴミ記事を作られるのも面倒ですよね。
なかなか細かいところで詰まってしまっております。
情報ありがとうございます。
orangemint 様
度重なり情報ご提供ありがとうございます。
そのプラグインを試してみます。ありがとうございます。
Kz様
なるほど根本を変えてしまう方法もありましたね。
一度調べてみます。貴重な情報ありがとうございました。