2017-12-29 42 views
-1

WordPress管理インターフェース内のuser-edit.phpビューに使用されているページテンプレートを置き換える必要があります。WordPressの管理者のuser-edit.phpページを置き換えてください。

私はコアファイルを変更するつもりはありませんが、代わりに自分のuser-edit.phpを作成したいと思っています。

これまでのところ、私はuser-edit.phpファイルを作成し、それを私の子供のテーマに配置しようとしました。

カスタムプラグインでこれを行うことはできますか?

答えて

0

WordPressの管理ページでは、テーマと同じ方法でテンプレートを実際に使用していません。したがって、実際に置き換えるテンプレートはありません。

言い換えれば、デフォルトのWordPress user-edit.phpページを置き換えるためのオプションがあります。

1)[brute force method]まっすぐにコアwp-admin/user-edit.phpファイルをあなた自身で置き換えてください。私はコアファイルを置き換えたくないと言っていることはすでに知っています。私はここに登場する他の人のためにこれをリストしています。明らかに、これは理想的ではありません。なぜなら、あなたのファイルはWordPressを更新するたびに上書きされるからです。

2)[サーバーリダイレクト方法]あなたのサイトの.htaccessファイルに適切なエントリを追加して、https://yourdomain.tld/wp-admin/user-edit.phpの呼び出しを新しいページ/ファイルにリダイレクトすることができます。サイトが置換ファイルを持たない新しいテーマに切り替えた場合、そのリダイレクトリンクが壊れるため、理想的ではありません。

3)[additiveメソッド]既存のcore/default Usersメニューだけを残して、新しいページを組み込むために独自の管理メニューを追加します(add_menu_page経由)。次に、[Users]メニューの代わりにその新しいメニューを使用するだけでよいことを理解してください。 user-edit.phpを指し示す他の管理ページのリンクがまだそこを指し示していて、adminユーザを古い/コアページに連れてくるので、理想的ではありません。

4)[php intercept method]はあなたのテーマのPHPコードのwp-admin/user-edit.phpを傍受し、その代わりに置き換えファイルを読み込みます。これはおそらく最善の方法ですが、一番簡単な方法はありません。また、置き換えページでは、ユーザー編集ページのフィルタとフックも使用できるプラグインが正しく機能するようにする必要があります。 #4を達成するために

[PHPのインターセプト]:

コアuser-edit.phpファイルが最初に行うことは、負荷wp-admin/admin.phpです。そのファイルはすべての関連する管理用のものをロードし、最終的にはuser-edit.phpに制御を戻します。しかし、それがない直前に、それはあなたのテーマののfunctions.phpファイルで、要求を傍受するために、このような関数を使用して、ファイルにリダイレクトし、"load-user-edit.php"

だから、アクションをトリガー:

function scottfive_override_user_edit(){ 
    require_once(get_template_directory() . '/myadminfiles/user-edit-replacement.php'); 
    die(); 
} 
add_action('load-user-edit.php', 'scottfive_override_user_edit', 1); 

。なお、このメソッドは、ファイル全体とその機能とセキュリティをすべて置き換えます。オリジナルのcore-edit.phpを見て、認証/認証コードを複製して、ファイルが少なくとも元のファイルと同じように安全であることを確認することをお勧めします。

コーディングハッピー! :D

関連する問題