PHP8.1にしたら管理画面でwarningが出たのを解消した方法

PHP8.1にしたら管理画面でwarningが出たのを解消した方法

WP本体を最新にして、PHPも8.1にしたら管理画面でワーニングが出てしまいました。

原因はfundtions.phpのサイドメニューの非表示などに関する部分の記述が問題でした。
番号でしていしていたのが、新しいWPになったら番号も変わるからなのか、その辺らしかったです。

修正前

// クライアント用ダッシュボードウィジェット非表示
function example_remove_dashboard_widgets() {
 if (!current_user_can('level_10')) { //level10以下のユーザーの場合ウィジェットをunsetする
 global $wp_meta_boxes;
 unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']); // 現在の状況
 unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']); // 最近のコメント
 unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']); // 被リンク
 unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']); // プラグイン
 unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']); // クイック投稿
 unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']); // 最近の下書き
 unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']); // WordPressブログ
 unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']); // WordPressフォーラム
 }
 }
add_action('wp_dashboard_setup', 'example_remove_dashboard_widgets');


// 【管理画面】管理画面にもファビコンを表示 
function admin_favicon() {
 echo '<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />';
}
add_action('admin_head', 'admin_favicon');




//上部管理バー admin bar に新規リンク追加をつける
function mytheme_admin_bar_render() {
    global $wp_admin_bar;
        
		
		$wp_admin_bar->add_menu( array(
            'id' => 'oshirasebar',
            'title' => 'お知らせ',
            'href' => admin_url( 'edit.php')
        ));
        $wp_admin_bar->add_menu( array(
            'parent' => 'oshirasebar',
            'id' => 'newoshirasebarbar',
            'title' => '新規お知らせの追加',
            'href' => admin_url( 'post-new.php')
        ));
		
		
		$wp_admin_bar->add_menu( array(
            'id' => 'sekoureibar',
            'title' => '施工例&お客様の声',
            'href' => admin_url( 'edit.php?post_type=sekourei')
        ));
        $wp_admin_bar->add_menu( array(
            'parent' => 'sekoureibar',
            'id' => 'newsekoureibar',
            'title' => '新規 施工例&お客様の声の追加',
            'href' => admin_url( 'post-new.php?post_type=sekourei')
        ));
		
		
		$wp_admin_bar->add_menu( array(
            'id' => 'soudanbar',
            'title' => 'エクステリアブログ',
            'href' => admin_url( 'edit.php?post_type=blog')
        ));
        $wp_admin_bar->add_menu( array(
            'parent' => 'soudanbar',
            'id' => 'newsoudanbar',
            'title' => '新規 エクステリアブログの追加',
            'href' => admin_url( 'post-new.php?post_type=blog')
        ));
		
		
		$wp_admin_bar->add_menu( array(
            'id' => 'faqbar',
            'title' => 'よくある質問FAQ',
            'href' => admin_url( 'edit.php?post_type=question')
        ));
        $wp_admin_bar->add_menu( array(
            'parent' => 'faqbar',
            'id' => 'newfaqbar',
            'title' => '新規よくある質問FAQの追加',
            'href' => admin_url( 'post-new.php?post_type=question')
        ));		
		
}
add_action( 'wp_before_admin_bar_render', 'mytheme_admin_bar_render' );





// 管理画面の項目名「投稿」を「お知らせに変更」
function change_post_menu_label() {
	global $menu;
	global $submenu;
	$menu[5][0] = 'お知らせ';
	$submenu['edit.php'][5][0] = 'お知らせ一覧';
	$submenu['edit.php'][10][0] = '新しいお知らせ';
	$submenu['edit.php'][16][0] = 'タグ';
	//echo ”;
}
function change_post_object_label() {
	global $wp_post_types;
	$labels = &$wp_post_types['post']->labels;
	$labels->name = 'お知らせ';
	$labels->singular_name = 'お知らせ';
	$labels->add_new = _x('新規追加', 'お知らせ');
	$labels->add_new_item = '新しいお知らせ';
	$labels->edit_item = 'お知らせの編集';
	$labels->new_item = '新しいお知らせ';
	$labels->view_item = 'お知らせを表示';
	$labels->search_items = 'お知らせ検索';
	$labels->not_found = 'お知らせが見つかりませんでした';
	$labels->not_found_in_trash = 'ゴミ箱のお知らせにも見つかりませんでした';
}
add_action( 'init', 'change_post_object_label' );
add_action( 'admin_menu', 'change_post_menu_label' );



// 管理者以外の管理画面サイドバーメニュー非表示 
function remove_menus () {
    if (!current_user_can('level_10')) { //level10以下のユーザーの場合メニューをunsetする
	remove_menu_page('wpcf7');   //Contact Form 7  コンタクトフォーム非表示
	remove_menu_page('edit.php?post_type=mw-wp-form');  //mw-wp-form    MW WP Form非表示   
	remove_menu_page('edit.php?post_type=slide');  //mw-wp-form    MW WP Form非表示     
    global $menu;
    unset($menu[4]);//メニューの線1
	unset($menu[10]);//メディア
    unset($menu[15]);//リンク
    unset($menu[20]);//ページ
    unset($menu[25]);//コメント
    unset($menu[59]);//メニューの線2
    unset($menu[60]);//テーマ
    unset($menu[65]);//プラグイン
    unset($menu[70]);//プロフィール
    unset($menu[75]);//ツール
    unset($menu[80]);//設定
    unset($menu[90]);//メニューの線3
    }
}
add_action('admin_menu', 'remove_menus');

// バージョン更新を非表示にする
//add_filter('pre_site_transient_update_core', '__return_zero');
// APIによるバージョンチェックの通信をさせない
//remove_action('wp_version_check', 'wp_version_check');
//remove_action('admin_init', '_maybe_update_core');


//更新通知を管理者権限のみに表示
function update_nag_admin_only() {
  if ( ! current_user_can( 'administrator' ) ) {
    remove_action( 'admin_notices', 'update_nag', 3 );
  }
}
add_action( 'admin_init', 'update_nag_admin_only' );



// フッターWordPressリンクを非表示に
function custom_admin_footer() {
 echo '<a href="mailto:hp@hirocreate.com">お問い合わせ</a>';
 }
add_filter('admin_footer_text', 'custom_admin_footer');

// 管理バーの項目を非表示
function remove_admin_bar_menu( $wp_admin_bar ) {
 $wp_admin_bar->remove_menu( 'wp-logo' ); // WordPressシンボルマーク
 $wp_admin_bar->remove_menu('my-account'); // マイアカウント
 }
add_action( 'admin_bar_menu', 'remove_admin_bar_menu', 70 );

// 管理バーから項目を削除する
function mytheme_remove_item( $wp_admin_bar ) {
    $wp_admin_bar->remove_node('new-content');//新規(投稿などなどのデフォルト表示の部分を削除
	$wp_admin_bar->remove_node('comments');// コメントを削除
	$wp_admin_bar->remove_node('edit');// コメントを削除
}
add_action( 'admin_bar_menu', 'mytheme_remove_item', 1000 );


// 管理バーのヘルプメニューを非表示にする
function my_admin_head(){
 echo '<style type="text/css">#contextual-help-link-wrap{display:none;}</style>';
 }
add_action('admin_head', 'my_admin_head');

// 管理バーにログアウトを追加
function add_new_item_in_admin_bar() {
 global $wp_admin_bar;
 $wp_admin_bar->add_menu(array(
 'id' => 'new_item_in_admin_bar',
 'title' => __('ログアウト'),
 'href' => wp_logout_url()
 ));
 }
add_action('wp_before_admin_bar_render', 'add_new_item_in_admin_bar');


// Contact Form 7の管理画面メニューを非表示にする
function remove_admin_menus() {
    if (!current_user_can('level_10')) {
        remove_menu_page('wpcf7');
    }
}
add_action('admin_menu', 'remove_admin_menus');




// 検索結果から除外したいページを指定
function search_filter($query) {
  if (!$query -> is_admin && $query -> is_search) {
    $query -> set('post__not_in', array(13));
  }
  return $query;
}
add_filter('pre_get_posts', 'search_filter');

修正後

// 管理画面ウィジェット非表示(管理者以外)
function example_remove_dashboard_widgets() {
    if (!current_user_can('administrator')) {
        global $wp_meta_boxes;
        unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
        unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
        unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
        unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
        unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
        unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']);
        unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
        unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
    }
}
add_action('wp_dashboard_setup', 'example_remove_dashboard_widgets');


// 管理画面ファビコン
function admin_favicon() {
    echo '<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />';
}
add_action('admin_head', 'admin_favicon');


// 管理バーにカスタムメニュー追加
function mytheme_admin_bar_render() {
    global $wp_admin_bar;

    $menus = array(
        array(
            'id' => 'oshirasebar',
            'title' => 'お知らせ',
            'href' => admin_url('edit.php'),
            'children' => array(
                array(
                    'id' => 'newoshirasebarbar',
                    'title' => '新規お知らせの追加',
                    'href' => admin_url('post-new.php')
                )
            )
        ),
        array(
            'id' => 'sekoureibar',
            'title' => '施工例&お客様の声',
            'href' => admin_url('edit.php?post_type=sekourei'),
            'children' => array(
                array(
                    'id' => 'newsekoureibar',
                    'title' => '新規 施工例&お客様の声の追加',
                    'href' => admin_url('post-new.php?post_type=sekourei')
                )
            )
        ),
        array(
            'id' => 'soudanbar',
            'title' => 'エクステリアブログ',
            'href' => admin_url('edit.php?post_type=blog'),
            'children' => array(
                array(
                    'id' => 'newsoudanbar',
                    'title' => '新規 エクステリアブログの追加',
                    'href' => admin_url('post-new.php?post_type=blog')
                )
            )
        ),
        array(
            'id' => 'faqbar',
            'title' => 'よくある質問FAQ',
            'href' => admin_url('edit.php?post_type=question'),
            'children' => array(
                array(
                    'id' => 'newfaqbar',
                    'title' => '新規よくある質問FAQの追加',
                    'href' => admin_url('post-new.php?post_type=question')
                )
            )
        )
    );

    foreach ($menus as $menu) {
        $wp_admin_bar->add_menu(array(
            'id' => $menu['id'],
            'title' => $menu['title'],
            'href' => $menu['href']
        ));
        if (!empty($menu['children'])) {
            foreach ($menu['children'] as $child) {
                if ($wp_admin_bar->get_node($menu['id'])) {
                    $child['parent'] = $menu['id'];
                    $wp_admin_bar->add_menu($child);
                }
            }
        }
    }
}
add_action('wp_before_admin_bar_render', 'mytheme_admin_bar_render');


// 投稿を「お知らせ」に変更
function change_post_menu_label() {
    global $menu, $submenu;

    if (isset($menu[5][0])) $menu[5][0] = 'お知らせ';
    if (isset($submenu['edit.php'][5][0])) $submenu['edit.php'][5][0] = 'お知らせ一覧';
    if (isset($submenu['edit.php'][10][0])) $submenu['edit.php'][10][0] = '新しいお知らせ';
    if (isset($submenu['edit.php'][16][0])) $submenu['edit.php'][16][0] = 'タグ';
}
add_action('admin_menu', 'change_post_menu_label');

function change_post_object_label() {
    global $wp_post_types;
    $labels = &$wp_post_types['post']->labels;
    $labels->name = 'お知らせ';
    $labels->singular_name = 'お知らせ';
    $labels->add_new = _x('新規追加', 'お知らせ');
    $labels->add_new_item = '新しいお知らせ';
    $labels->edit_item = 'お知らせの編集';
    $labels->new_item = '新しいお知らせ';
    $labels->view_item = 'お知らせを表示';
    $labels->search_items = 'お知らせ検索';
    $labels->not_found = 'お知らせが見つかりませんでした';
    $labels->not_found_in_trash = 'ゴミ箱のお知らせにも見つかりませんでした';
}
add_action('init', 'change_post_object_label');


// 管理者以外のサイドバー非表示
function remove_menus() {
    if (!current_user_can('administrator')) {
        remove_menu_page('wpcf7');
        remove_menu_page('edit.php?post_type=mw-wp-form');
        remove_menu_page('edit.php?post_type=slide');
        remove_menu_page('upload.php');
        remove_menu_page('link-manager.php');
        remove_menu_page('edit.php?post_type=page');
        remove_menu_page('edit-comments.php');
        remove_menu_page('themes.php');
        remove_menu_page('plugins.php');
        remove_menu_page('profile.php');
        remove_menu_page('tools.php');
        remove_menu_page('options-general.php');
    }
}
add_action('admin_menu', 'remove_menus');


// 更新通知を管理者のみ表示
function update_nag_admin_only() {
    if (!current_user_can('administrator')) {
        remove_action('admin_notices', 'update_nag', 3);
    }
}
add_action('admin_init', 'update_nag_admin_only');


// 管理画面フッター
function custom_admin_footer() {
    echo '<a href="mailto:hp@hirocreate.com">お問い合わせ</a>';
}
add_filter('admin_footer_text', 'custom_admin_footer');


// 管理バーの不要項目削除
function remove_admin_bar_menu($wp_admin_bar) {
    $wp_admin_bar->remove_menu('wp-logo');
    $wp_admin_bar->remove_menu('my-account');
}
add_action('admin_bar_menu', 'remove_admin_bar_menu', 70);

function mytheme_remove_item($wp_admin_bar) {
    $wp_admin_bar->remove_node('new-content');
    $wp_admin_bar->remove_node('comments');
    $wp_admin_bar->remove_node('edit');
}
add_action('admin_bar_menu', 'mytheme_remove_item', 1000);

function my_admin_head() {
    echo '<style type="text/css">#contextual-help-link-wrap{display:none;}</style>';
}
add_action('admin_head', 'my_admin_head');

// 管理バーにログアウト
function add_new_item_in_admin_bar() {
    global $wp_admin_bar;
    $wp_admin_bar->add_menu(array(
        'id' => 'new_item_in_admin_bar',
        'title' => __('ログアウト'),
        'href' => wp_logout_url()
    ));
}
add_action('wp_before_admin_bar_render', 'add_new_item_in_admin_bar');


// 検索結果から除外
function search_filter($query) {
    if (!$query->is_admin && $query->is_search) {
        $query->set('post__not_in', array(13));
    }
    return $query;
}
add_filter('pre_get_posts', 'search_filter');

ポチッ☆とクリックお願いします!
↓ ↓ ↓

  • にほんブログ村 IT技術ブログ ホームページ・サイト制作支援へ

コメントは受け付けていません。

サブコンテンツ

TOP