【WordPress】【Advanced Custom fields】カスタム投稿のタイトルの入力を制御する。
ちょっとしたモノを複数人で管理する時に、簡単なものをワードプレスをベースにして作ることがたまにあります。
エクセルで作って・・・となると、少し面倒に思う瞬間もあったりするので。
フォルダ分けして、ブック分けして・・・とかですね。
ブラウザを開けば入力したり一覧が見れたり。
ワードプレスのプラグイン「Advanced Custom Fields」を使えば、フロントエンドの入力や管理も大体思い通りに作ることができます。
なので、これから管理を始めるといった場合に、ワードプレスで作成してしまう事が多いです。
問題となるのは「タイトル」
この場合に管理する側にとって問題なのが、「タイトル」です。
入力してもらう内容を考えるとタイトルは不要ですが、タイトルが無いと一覧管理がしにくいという場合があります。
かといって、入力する人によって表記揺れが起こるのも面倒です。
例えば、日付と名前だけタイトルに入れるとして。
(2022/1/26)伊藤
とするのか。
伊藤(2022・1・26)
にしたりとか。
【2022/1/26】伊藤
とカッコが違うとか。
並べてみると。
(2022/1/26)伊藤
伊藤(20221/1/26)
【2022/1/26】伊藤
(伊藤)2022/1/26
もう見にくいですね。
そこで使えるのが、前回紹介したカスタムフィールドの値を使ってタイトルを自動入力する方法です。
ただ、それだけだと入力する人によって入力してしまったりという場合もあります。
なので、タイトルを入力できないようにすれば良いですね。
見た目でも入力する必要が無いと分かるので、複数人で入力する場合には便利です。
ワードプレスのタイトルを入力できないようにする2つのパターン
タイトルの入力が不要であることを伝えるには2つの方法があります。
「Custom Post Type UI」の設定でタイトル欄を消す
カスタム投稿タイプやカスタムタクソノミーを追加できる便利なプラグイン「Custom Post Type UI」を使用している場合、ワードプレスの投稿画面から不要なモノを消すことができます。
非表示にするだけなので、実際に消えるわけではありません。
カスタムフィールドの値がタイトルで反映されるように設定しておけば、タイトルはしっかりと登録されます。
「Custom Post Type UI」でカスタム投稿を作成する場合、設定の「サポート」のところで表示するか非表示にするかを選ぶ事ができます。
「Custom Post Type UI」については、カスタムタクソノミーについて書いた記事で触れましたので、よろしければお読みください。
少し分かりにくいですが、「タイトル」のチェックボックスにチェックを入れると、タイトルが表示され、外すと非表示となります。
以上です。
しかし、タイトルは見出しのような役割もあるので、内容を修正する時に見えないと困ることもあります。
CSSで疑似的にreadonlyにする
テンプレートファイルの編集して<title>にreadonlyを付与しても良いですが、そうすると後々困ったことになる可能性もあります。
なので、疑似的にreadonlyとなるようなCSSファイルを作成し、投稿タイプによって読み込むかどうかをfunctions.phpで設定する。
という流れでやってみます。
まずは、CSSです。今回は試しにadmin-style.cssというファイル名で進めます。
1 2 3 4 | #titlediv #title{ pointer-events: none; background-color: darkgray; } |
titleタグのpointer-eventsをnoneにして、クリックできなくします。
これで、事実上入力ができないCSSとなります。
そのままの背景色だと入力できるように見えてしまい、入力する人がクリックできないことに混乱する可能性もあるので、背景色を変えて入力不要であることを伝えます。
続いて、functions.phpでadmin-style.cssを読み込む投稿タイプを指定します。
1 2 3 4 5 6 7 | //adminタイトル入力禁止調整のCSS読み込み function admin_notitle_styles(){ if ( get_post_type() == 'test' ){ wp_enqueue_style( 'admin-style', get_stylesheet_directory_uri() . '/admin/admin-style.css' ); } } add_action( 'admin_enqueue_scripts', 'admin_notitle_styles' ); |
スタイルシートの読み込みをするワードプレス関数、wp_enqueue_script()を使用し、投稿タイプが「test」の時のみadmin-style.cssを読み込む。という内容です。
これでカスタム投稿タイプ「test」の編集画面を開くと、タイトル欄が入力不可となります。
ワードプレスで元々使える投稿や固定ページのタイトルは今まで通り入力できます。
admin-style.cssを読み込みたい投稿タイプが増えた時には、ifの中身をorで増やせばそのまま使えます。
1 2 3 4 5 6 7 | //adminタイトル入力禁止調整のCSS読み込み function admin_notitle_styles(){ if ( get_post_type() === 'testA' || get_post_type() === 'testB' ){ wp_enqueue_style( 'admin-style', get_stylesheet_directory_uri() . '/admin/admin-style.css' ); } } add_action( 'admin_enqueue_scripts', 'admin_notitle_styles' ); |
テンプレートファイルを毎回編集するよりは良いかと思います。
使いやすさを考えるのも大事
自動でタイトルを入力できるのであれば、タイトルは入力不要です。
それを分かりやすくすることで、入力量を減らすこともできます。
タイトルの入力がいらないと思った時に、参考にしていただければと思います。
ワードプレス関係の他の記事はこちらからどうぞ!前の記事
【WordPress】【Advanced Custom fields】自動でACFに入力された値をタイトルで使う
次の記事
【WordPress】Advanced Custom fields の投稿オブジェクトが便利だった
こちらも読まれています
お問い合せ
この記事の内容や当社についてのお問い合わせはこちらのフォームをご覧下さい。
ご利用前に当社のプライバシーポリシーと免責事項をお読み下さい。
送信ボタンを押された時点で、当社プライバシーポリシー又は、免責事項にご同意頂いたものとみなします。