サポート » 使い方全般 » コメントに対しての編集・削除等の表示

  • 記事に対して自分が返信したコメントのみ編集・削除ができるようにするにはどうすればよいでしょうか? !wp_get_current_user()を使って、自分以外は編集・削除を非表示にしましたが、自分以外の人が投稿したコメントも編集できてしまいます。宜しくお願いします。

    add_filter( 'user_has_cap', 'my_user_has_cap', 10, 3 );
    function my_user_has_cap( $allcaps, $caps, $args ) {
     if ( 'edit_comment'== $args[0] && get_current_user_id()== $args[1] ) {
     foreach ( $caps as $cap ) {
     get_currentuserinfo();
    
     if (!wp_get_current_user()) {
     unset( $allcaps[$cap] );
     }
    
      if (!is_user_logged_in()){
     unset( $allcaps[$cap] );
     }
    
     }
     }
    
     return $allcaps;
    }
1件の返信を表示中 - 1 - 1件目 (全1件中)
  • – ウェブサイト上だけでOK (管理画面では権限があればできてしまう)
    – 編集リンクが表示されないだけ(URLに直接アクセスすると編集できてしまう)
    – 編集リンクが edit_comment_link という関数が使われているなら使える

    ということでOKでしたら、以下を試してみてください。

    <?php
    
    add_filter( 'edit_comment_link', 'forum_158154_edit_comment_link_filter' );
    function forum_158154_edit_comment_link_filter( $link, $comment_id, $text ) {
    
    	// ログイン中のユーザのIDを取得する
    	$user_ID = get_current_user_id();
    
    	// コメントIDと比較する
    	if ( $comment_id !== $user_ID ) {
    		// 同じじゃない場合はリンクの文字列を空にしちゃう
    		$link = '';
    	}
    
    	return $link;
    
    }

    参考

    Home

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「コメントに対しての編集・削除等の表示」には新たに返信することはできません。