• nobu1

    (@nobu1)


    投稿者本人が投稿したコメントや記事は、投稿者本人のみ編集できるようにしたい。他人が投稿したものは編集できない。どのように記述すれば可能ですか。
    数千ページに適用するんで、数ページだけ権限を設定するような形では厳しいです。

    投稿者権限では、自分のコメントのみ編集可能にする
    https://tenman.info/labo/snip/archives/3220

    を入れたら、投稿者が編集できるようになったんですけど、すべてのユーザーのコメントの編集が可能になってしまいました。
    よろしくお願いします。

    • このトピックはnobu1が3年前に変更しました。
5件の返信を表示中 - 1 - 5件目 (全5件中)
  • Aki Hamano

    (@wildworks)

    @nobu1 さん

    こんにちは。
    このコードではどうでしょうか。

    add_filter( 'pre_get_comments', 'my_comments_for_current_author' );
    function my_comments_for_current_author( $query ) {
    	global $pagenow;
    
    	if ( 'edit-comments.php' !== $pagenow || ! is_admin() ) {
    		return;
    	}
    
    	if ( ! current_user_can( 'manage_options' ) ) {
    		$query->query_vars['user_id'] = get_current_user_id();
    	}
    
    	return $query;
    }
    
    add_filter( 'user_has_cap', 'my_user_has_cap', 10, 3 );
    function my_user_has_cap( $allcaps, $cap, $args ) {
    	$current_user_id = get_current_user_id();
    
    	if ( 'edit_comment' === $args[0] && $current_user_id === $args[1] ) {
    		$comment = get_comment();
    		if ( (int) $comment->user_id === $current_user_id ) {
    			$allcaps[ $cap[0] ] = true;
    		}
    	}
    
    	return $allcaps;
    }
    トピック投稿者 nobu1

    (@nobu1)

    できました!ありがとうございました!

    さらに問題点が・・・、
    投稿ページの名前とメールを編集不可能にして、さらに、エディタのタグの機能をオフにしたいです。

    名前とメールを、まったく別のアカウントで登録している名前(ユーザー名)とメールで保存してみたら、保存できました。偽装状態ができあがってしまいました。
    エディタのタグの機能は「link」を追加したときに、内部で登録しているページが一覧で表示されてしまいました。タグ自体は有効にしたいです。挿入する機能のみ消したいです。

    これらの点がセキュリティ上、好ましくないです。
    上記と同様に、コードを入れて解決できないでしょうか?

    Aki Hamano

    (@wildworks)

    @nobu1 さん

    こんにちは。

    投稿ページの名前とメールを編集不可能にして、さらに、エディタのタグの機能をオフにしたいです。

    →そのようなフックは用意されていないので、jQuery等で自前でカスタマイズする必要があります。

    名前とメールを、まったく別のアカウントで登録している名前(ユーザー名)とメールで保存してみたら、保存できました。偽装状態ができあがってしまいました。

    pre_comment_on_post フック等で、名前・メールアドレスが変更されていないかチェックできるかもしれません。

    いずれにしても、今回のカスタマイズ自体セキュリティリスクになりえます。
    考慮すべき点はおそらく他にもあると思いますので、もし自信がなければ、専門業者へ相談される事もお勧めします。

    トピック投稿者 nobu1

    (@nobu1)

    どうもありがとう。
    スマホのアプリを制作できませんか。フリーの人で組める人を探しています。

    Aki Hamano

    (@wildworks)

    @nobu1 さん

    こんにちは。

    フォーラム詳細ルールにある通り、有料サポートを要求する投稿は禁止されていますので、ご自身でフォーラム外でお探しいただければと思います。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「投稿者本人のみ、コメントや記事を編集できる方法」には新たに返信することはできません。