ユーザーがadminかどうかを確認した後にこれを使用します
if ( isset($_GET['action']) && $_GET['action'] === 'edit' )
もっと良い方法はありますか?
これを判断するには get_current_screen
を使用できます。
$screen = get_current_screen();
if ( $screen->parent_base == 'edit' ) {
echo 'edit screen';
}
私はこれが常により良いと言うかどうかわからない、それは必要なものに依存しますが、それはおそらく私がそうする方法です。この方法の大きな利点は、より多くの情報にアクセスできることと、エルゴはより多くの異なる区別をすることができることです。私が何を意味するのか理解するためにドキュメンテーションを見てください。
それは後のフックで使われるべきです、 Codex は言う:
admin_init
フックから呼び出された場合、この関数はnull
を返します。current_screen
のような後のフックで使っても大丈夫です。
あなたが実際にページや投稿をしているのであれば、次のことを考えてみましょう。
// Remove pointless post meta boxes
function FRANK_TWEAKS_current_screen() {
// "This function is defined on most admin pages, but not all."
if ( function_exists('get_current_screen')) {
$pt = get_current_screen()->post_type;
if ( $pt != 'post' && $pt != 'page') return;
remove_meta_box( 'authordiv',$pt ,'normal' ); // Author Metabox
remove_meta_box( 'commentstatusdiv',$pt ,'normal' ); // Comments Status Metabox
remove_meta_box( 'commentsdiv',$pt ,'normal' ); // Comments Metabox
remove_meta_box( 'postcustom',$pt ,'normal' ); // Custom Fields Metabox
remove_meta_box( 'postexcerpt',$pt ,'normal' ); // Excerpt Metabox
remove_meta_box( 'revisionsdiv',$pt ,'normal' ); // Revisions Metabox
remove_meta_box( 'slugdiv',$pt ,'normal' ); // Slug Metabox
remove_meta_box( 'trackbacksdiv',$pt ,'normal' ); // Trackback Metabox
}
}
add_action( 'current_screen', 'FRANK_TWEAKS_current_screen' );
グローバル変数 $ pagenow
global $pagenow;
if (( $pagenow == 'post.php' ) || (get_post_type() == 'post')) {
// editing a page
}
if ($pagenow == 'profile.php') {
// editing user profile page
}
現在の使用が管理者であるかどうかを確認するには、次の機能を使用します。
<?php
function is_user_admin(){
if ( is_user_logged_in() ){
if( current_user_can( 'manage_options' ) )
{
return true;
}
else
{
return false;
}
}
return false;
}
?>