shinke1987.net
雑多な備忘録等のはず。
他のカテゴリ・タブ
目次
PR

WordPressのクラシックテーマ自作時の個人的Tips

2024-07-30 2024-07-30
カテゴリ: WordPress

管理画面でサイドメニューの特定のトップレベルメニューを削除する

削除したいトップレベルメニューのmenu_slugの値を確認

functions.php にて次のコードを追加する。

function removeAdminMenu() {
    global $menu;
    $temp = [];
    foreach ($menu as $menuElement) {
        $temp[] = [
            '項目' => $menuElement[0],
            'menu_slug' => $menuElement[2],
        ];
    };
    var_dump($temp);
}

add_action('admin_menu', 'removeAdminMenu');

ログイン後、Webブラウザで管理画面を表示するために下記のアドレスへアクセスする。

https://サイトのURL/wp-admin

下記画像のように表示される。

このように表示されたら、例えばトップレベルメニューの「メディア」を削除したいなら、
menu_slug は upload.php なので、remove_menu_page関数にupload.phpを指定すれば良いとわかる。

実際に削除

上記のmenu_slugを確認するコードを削除し、下記コードをfunctions.phpへ追加すれば良い。

// トップレベルメニューの「メディア」を削除する場合。
function removeAdminMenu() {
    remove_menu_page('upload.php');
}

add_action('admin_menu', 'removeAdminMenu');

指定したフックに登録された関数名を表示

次のコードをfunctions.phpにて実行すると表示されるが、結局IDEのブレイクポイントを使うことになるはず。

フックによってはvar_dumpで表示できない。

function showFuncInHook() {
    global $wp_filter;
    var_dump($wp_filter[current_filter()]->callbacks);
}

add_action('フック名', 'showFuncInHook');

sitemap.xml のURLを確認

次のコードをfunctions.php等でブレイクポイントを設置して実行したり、表示すると良い。

get_sitemap_url('index');

クエリパラメータのpagedに存在するはずのページ番号を指定すると、意図しないindex.php等が表示される

管理画面 → 設定 → 表示設定 → 1ページに表示する最大投稿数が、WP_Queryのpagedで指定した数値より大きい場合に起こる。

基本的にWP_Queryのpagedは指定しない方が良い。

カテゴリページ等でテンプレートタグのthe_date()を利用時、同じ年月日だと2番目以降が表示されない

記事が一覧表示されるページで、同一の作成年月日の記事があった場合、2番目以降の記事の作成年月日が表示されないことがある。

対策として、the_date()の代わりに下記を使うと良い。

the_time('Y-m-d');
同一カテゴリの記事