web-dev-qa-db-ja.com

リダイレクトプラグイン - エディタに「リダイレクト」メニューにアクセスさせる方法は?

リダイレクトプラグイン を使用しています。管理パネルの[ツール]メニューの下にある[リダイレクト]サブメニューを有効にします。管理者として私はプラグインにアクセスすることができます。しかし、私は私の「編集者」アカウントにもそれを利用したいと思います。

私はたくさん検索しましたが、 this のような解決策を見つけました。それはプラグイン自体を編集するような解決策を提供しています。次回のアップデートですべての変更が消去されるので、私は実際には直接プラグインファイルを編集したくありません。

それでは、どのように私は 'ツール'メニューの 'リダイレクト'サブメニューに 'エディタ'をアクセスさせることができますか?

4
Mayeenul Islam

良いニュースは、Redirectionプラグインのバージョン2.3.7から、彼らは特権のためにredirection_roleと呼ばれるフィルタを導入しました。これが コアコード (v.2.3.7)です。

add_management_page( __( "Redirection", 'redirection' ), __( "Redirection", 'redirection' ), apply_filters( 'redirection_role', 'administrator' ), basename( __FILE__ ), array( &$this, "admin_screen" ) );

溶液

次のコードをあなたのテーマのfunctions.phpに入れて、 'editor'が 'Redirection'サブメニューにアクセスできるようにするだけです。

/**
 * Redirection Plugin Editor access
 */
add_filter( 'redirection_role', 'redirection_to_editor' );
function redirection_to_editor() {
    return 'edit_pages';
}

参照してください WordPressの編集者ユーザーロールおよび機能 - WordPress Codex

11
Mayeenul Islam

@ mayeenul-islamからの回答は非常に便利ですが、投票またはコメントするための十分な情報がありません。

その答えが公開されて以来、RedirectionプラグインはREST-APIを使用しています。これにより、その機能がEditorsへのアクセスを許可していてもパーミッションエラーが発生する可能性があります。

私の場合は、リダイレクトバージョン3.5を使用して、リダイレクトオプションのREST-API設定を 'Default/wp-json'から 'Proxy over Admin AJAX'に変更することで問題を解決しました。

1
Keith Taylor