速報

プレステージで最大約550万件の情報持ち出し|ロードサービスは代替運用で継続

CATEGORY

【WordPress】特定のカスタム投稿のパーマリンクを非表示にする【管理画面】

※本ページのリンクにはプロモーションが含まれています。

【WordPress】特定のカスタム投稿のパーマリンクを非表示にする【管理画面】

目次

本記事では、WordPressの管理画面で特定のカスタム投稿のの項目を非表示にする方法をご紹介しています。

は作りたいけど、詳細ページが必要ないパターンって、Web制作をしているとちょいちょいあります。例えば、キービジュアルのスライダー画像だけを設定したり、お知らせを一覧だけ出したり、外部の等で引っ張ったデータに紐づけたり。

こういった使い方をする場合、投稿の編集画面に表示される「パーマリンク」や「プレビュー」といった項目は必要なくなります。詳細ページがないわけですから。かといってファイルをごりごり編集して消すほどでもないし、別にあっても困らないけど、いらないものだから簡単にできるなら非表示にしたい!

本記事は、そういった方に向けた内容のご紹介となります。パーマリンクの要素を消すのではなく非表示にする方法となりますので予めご了承ください。

では、解説していきます。

スポンサーリンク

実際にパーマリンクの項目を非表示する

本記事でご紹介する内容をまとめると下記のプログラムが完成します。下記の内容をテーマの中にある「functions.php」に追記して「if文」の中の「post_type_name」の部分を実際に使用しているカスタム投稿名に変えれば投稿編集画面の「パーマリンク」の項目は表示されなくなります。

functions.php

add_action('current_screen','hide_permalink');
function hide_permalink(){

    $current_screen = get_current_screen();

    if(isset($current_screen) && $current_screen->post_type === 'post_type_name') {

        $style = '<style>#edit-slug-box {display: none !important; }</style>';

        echo $style;
    }
}

一応コピペしてカスタム投稿名を修正すればそのまま使用してもらえるのですが、念のためもう少し詳しく解説していきます。

プログラムがやっていること

上記でご紹介したプログラムの処理内容をざっくりと箇条書きでまとめてみます。

  • 「current_screen」にアクションフックする
  • アクションフックに指定した関数を実行する
  • 現在のページ情報を取得して「指定したカスタム投稿タイプ」であれば「style」でパーマリンクを非表示にする

もう少し簡潔にまとめると、管理画面の指定したカスタム投稿タイプの編集ページにアクセスがあった場合、スタイルを追加して「パーマリンク」の項目を非表示にする、です。管理画面で特定の関数を実行するためにはフックを利用します。

スポンサーリンク

アクションフックとは

WordPressはページの読み込みが始まってから多くの段階を踏んで動的にページを構築していきます。

は、引数に指定したタイミングがやってくると、予め指定した関数を実行してくれるWordPressの機能です。「add_action()」という関数を使ってアクションフックを登録します。指定することができるタイミング(フック)は多くありますが、今回は「current_screen」というフックを使用します。

「current_screen」は下記のタイミングで実行する関数を指定することができます。

current_screen 管理画面で読み込まれるページの情報にアクセスすることができます。

後はアクションフックで実行する関数を作成していきます。

アクションフックで実行する関数

関数内の処理は単純です。現在アクセスがあるページの情報を取得して、そのページが指定したカスタム投稿タイプと一致すればスタイルを出力するだけです。

現在アクセスがあるページの情報は下記のWordPressの関数で取得することができます。

get_current_screen();

実行すると下記の「WP_Screen」というオブジェクトを取得することができます。ダンプを確認する下記のような値を持っていることがわかります。

object(WP_Screen)#8569 (18) {
    ["action"]=>
    string(0) ""
    ["base"]=>
    string(4) "post"
    ["columns":"WP_Screen":private]=>
    int(0)
    ["id"]=>
    string(2) "id"
    ["in_admin":protected]=>
    string(4) "site"
    ["is_network"]=>
    bool(false)
    ["is_user"]=>
    bool(false)
    ["parent_base"]=>
    NULL
    ["parent_file"]=>
    NULL
    ["post_type"]=>
    string(2) "post_type_name"
    ["taxonomy"]=>
    string(0) ""
    ["_help_tabs":"WP_Screen":private]=>
    array(0) {
    }
    ["_help_sidebar":"WP_Screen":private]=>
    string(0) ""
    ["_screen_reader_content":"WP_Screen":private]=>
    array(0) {
    }
    ["_options":"WP_Screen":private]=>
    array(0) {
    }
    ["_show_screen_options":"WP_Screen":private]=>
    NULL
    ["_screen_settings":"WP_Screen":private]=>
    NULL
    ["is_block_editor"]=>
    bool(false)
}

オブジェクトの詳細については下記のページで解説してあります。英語ページですが翻訳すれば理解できる内容となっています。

WP_Screen Reference

多くの情報を取得することができますが、今回は「カスタム投稿タイプ名」だけを取得すればいいので下記のように記述します。

$current_screen = get_current_screen();
$current_screen->post_type;

これで現在アクセスがあるページのカスタム投稿名を取得することができます。後はこれを比較して、指定したカスタム投稿名と一致した場合に「style」を出力することで特定のページ内にある「パーマリンク」の項目を非表示にすることができます。

スポンサーリンク

最後に

いかがでしたでしょうか。

本記事でご紹介した内容はかなりニッチなものですが、知っておくと管理画面を自由にカスタマイズできるようになるため、オリジナルのテーマ作成などに役立つのでおすすめです!

以上、WordPressの管理画面で特定のカスタム投稿のパーマリンクを非表示にする方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / アプリ開発者 / 技術ブログ運営者

福岡のWeb制作会社に勤務するWebエンジニアです。10年以上にわたりWeb制作・開発に携わり、ヒアリングや進行管理から、コーディング、CMSの構築、システム開発、サーバーの構築・保守・運用まで、Webサイト制作の工程を幅広く担当しています。Webサイトは、これまでに100以上の構築・保守を手がけてきました。

個人でもWebサイトの制作・改修やWebアプリの開発・運用を行い、AIを活用した開発にも取り組んでいます。近年はWebセキュリティにも注力しています。

2015年から技術メディア「Into the Program」を運営し、実務や開発で得た知識をもとに、プログラミングの実装方法やWebサイトの運用・セキュリティ情報を発信しています。

主な分野
Webサイト構築・保守・運用 / HTML/CSS / JavaScript / PHP / WordPress / サーバー構築・保守・運用 / アプリ開発 / セキュリティ対策
資格・試験合格
情報セキュリティマネジメント試験
基本情報技術者試験
AWS認定ソリューションアーキテクト アソシエイト
PHP8技術者認定ウィザード
メディア運営
2015年〜

記事の作成・更新について

セキュリティ記事は、ベンダーの公式アドバイザリやCVE・JVNなどの一次情報を参照し、出典と情報確認日を記載します。実環境での検証を行った場合は、その環境と確認範囲を明示します。重要な追加情報や誤りを把握した場合は、内容を確認して追記・訂正します。

関連する記事

おすすめの書籍

キーワードから探す

スポンサーリンク

アクションフック

WordPressで、決まったタイミングに独自の処理を追加するための仕組み。add_action()で登録する。

詳しく見る

API

ソフトウェアやサービスの機能を、ほかのプログラムから決まった方法で呼び出して使えるようにした窓口。

詳しく見る

カスタム投稿タイプ

WordPressで、標準の「投稿」「固定ページ」とは別に、お知らせや商品などの独自の種類のコンテンツを作る機能。

詳しく見る

パーマリンク

Webページごとに付けられる、変わらない前提のURL。WordPressでは記事のURLの形式を設定できる。

詳しく見る