質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

例外処理

例外処理(Exception handling)とは、プログラム実行中に異常が発生した場合、通常フローから外れ、例外として別の処理を行うようにデザインされたプログラミング言語構造です。

Q&A

解決済

1回答

1578閲覧

カスタムフィールド投稿時に選択されているタームを条件判定に使用したい

harami_

総合スコア128

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

例外処理

例外処理(Exception handling)とは、プログラム実行中に異常が発生した場合、通常フローから外れ、例外として別の処理を行うようにデザインされたプログラミング言語構造です。

0グッド

0クリップ

投稿2021/05/17 07:27

前提・実現したいこと

カスタムフィールド「お知らせ」投稿時に、お知らせを分類するタクソノミーで「イベント」が選択されている場合のみ
エリア分類のタクソノミーも必須選択項目に設定したい。

発生している問題・エラーメッセージ

ACFを使用していますが、条件判定の項目ではイベントを選択したときのみという条件が設定できず困っています。
この条件分岐がACFの機能で賄えるものかが分かりません。

試したこと

functions.phpにエラー処理を書けばよいかとも思いましたが、こちらも上手くいきませんでした。

php

1<?php 2add_action('save_post', 'info_validation', 99, 3); 3function info_validation($post_id, $post, $update) { 4 5 if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) { // 自動保存を除外 6 return $post_id; 7 } else { 8 9 remove_action('save_post', 'info_validation'); 10 11 if($post->post_type == 'information') { 12 $division = get_the_terms($post_id,'division'); //お知らせ分類を取得 13 $area = get_the_terms($post_id,'area'); //エリア分類を取得 14 if($division[0]->slug == 'event' && empty($area)) { ?> 15 <script> 16 jQuery(function($) { 17 $('#poststuff').before('エラー'); 18 }); 19 </script> 20 <?php return $post_id; 21 }; 22 add_action( 'save_post', 'info_validation'); 23} ?>

補足情報(FW/ツールのバージョンなど)

Advanced Custom FieldsはProを使用しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

アクションフックを変更しました。
get_the_termsでは現在の入力情報は取得できなかったので、大幅に改変しました。

php

1<?php 2add_action('admin_head-post-new.php', 'info_validation'); 3add_action('admin_head-post.php', 'info_validation'); 4function info_validation() { ?> 5 <script type="text/javascript"> 6 (function() { 7 jQuery.noConflict(); 8 jQuery(jQuery(window).on('load', function() { 9 if(jQuery('#post_type').val() == 'information'){ 10 jQuery('#publish').on('click', function (e) { 11 if(エラー条件) { 12 alert('エラーメッセージ'); 13 return false; 14 }} 15 }); 16 } 17 })); 18 })(); 19 </script> 20<?php } ?>
参考文献

【WordPress】タクソノミーを選択必須にする - ポケロペンチオという軍団
WordPressで投稿時にバリデーションを行う方法 | ヨンイチワイ

投稿2021/05/18 09:33

harami_

総合スコア128

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問