検索
ホームページバックエンド開発PHPチュートリアル詳細: 再利用可能なカスタム メタ ボックス: 詳細フィールド

カスタム メタ ボックス テンプレート チュートリアル シリーズのパート 1 では、一連のフィールドをループし、各フィールドと HTML に必要なさまざまな種類のフォーム フィールドを出力するカスタム メタ ボックスを設定する方法について説明しました。これで、アレイとスイッチ ボックスに高度な項目を追加する準備が整いました。


ブロードキャストグループ

ラジオ ボタンは、チェックボックスのようなオン/オフ スイッチとしてではなく、ユーザーに 2 つのオプションのうち少なくとも 1 つを選択させるために使用されるため、実際には単独で使用されることはありません。最初に行う必要があるのは、単一のオプションを $custom_meta_fields 配列に追加することです。

リーリー

これを、パート 1 で開始した元の $custom_meta_fields 配列内の他の配列項目に必ず追加してください。

この配列は、選択ボックスの項目とほぼ同じです。メインタグ、説明、および一意の ID があります。タイプを定義してから、オプション配列を追加します。後で保存された配列をチェックして保存された値を取得するため、オプション キーがオプションの値と同じであることが重要です。

リーリー

このコードは、メタ ボックス スイッチの最後の「break;」の後に追加されます。

  • フィールドのネストされた「オプション」配列内の各オプションをループします
  • インライン条件を使用して、保存された値が現在開いている値と一致するかどうかを判断し、真の場合は「checked」属性を出力します
  • オプションの値をタグの一意の ID として使用します
  • 次のオプションが新しい行になるように、最後に改行文字を追加します。
  • 説明フィールドで終わります。オプションをループするときに
  • を残したので、前にある「
    」は必要ありません。

チェックボックスグループ

チェックボックスをスイッチとして使用する方法と、複数のオプションからオプションを選択する方法について説明しましたが、同じフィールドに複数の値を保存できるようにしたいと考えていますか?ここでチェックボックス グループが役に立ちます。

リーリー

もう一度、これを

$custom_meta_fields 配列に追加します。設定は、一意の ID と定義されたタイプを持つ同様のフィールドとほぼ同じです。 リーリー

ここでの最大の違いは、このデータを配列として保存することです。

    配列で定義された各オプションをループします
  • 名前の末尾に角括弧を追加して、データを配列に保存します: []
  • 「checked」属性を出力するインライン条件で、「in_array()」を使用して値が配列内にあるかどうかを確認します
  • 前と同様に、各入力に値を追加し、ループを閉じて、説明を出力します

カテゴリの選択

さまざまな目的にカスタム分類を提供できるのは素晴らしいことですが、場合によっては、ユーザーが投稿ごとに 1 つの用語のみを選択できるように制限したい場合があります。簡単な解決策は、WordPress が投稿作成ページに追加するデフォルトの選択ボックスを削除し、それを選択ボックスとしてカスタム メタ ボックスに追加することです。

リーリー

この例では、組み込みの分類法「カテゴリ」を使用します。これを

$custom_meta_fields 配列に追加します。 「id」がカテゴリ名と同じであることを確認してください。 リーリー

このフィールドを完全に機能させるには、設定した他のフィールドよりも多くの情報が必要です。

    選択ボックスを開き、空白の値を「1 つ選択」として追加します
  • セット分類のすべての用語を取得
  • 現在のカテゴリに保存されている用語を取得します
  • 各用語のループを開始します。
  • 物事をシンプルで読みやすくするために、保存された用語に一致する場合はオプションを出力し、一致しない場合は通常のオプションを出力するフルサイズの条件ステートメントを使用します。
  • ループを閉じてボックスを選択すると、分類に関する情報を取得して変数に保存する必要があります。
  • 説明領域は、分類用語を管理できる領域にユーザーをリンクする簡単な方法として使用します。私たちが収集した $taxonomy 情報のタグを使用して、複数形が正しいことを確認してください (カテゴリなどというものはありません)。
デフォルトのカテゴリボックスを削除します

ユーザー エクスペリエンスやデータの保存に矛盾を生じさせずに、デフォルト ボックスをカスタム選択ボックスでオーバーライドしたいため、分類法の編集ボックスを画面から削除する必要があります。

リーリー

ここで

$custom_meta_fields 配列を使用して、各 "tax_select" フィールドをループし、それをこの削除関数に追加することもできますが、おそらく、それらに個別に名前を付ける方がはるかに簡単です。カテゴリ ボックスを正しく削除するには、カテゴリ ボックスの div の ID を知っている必要があります。 remove_meta_box() の詳細については、WordPress Codex をご覧ください。

条件を保存

このフィールドの最後のステップは、分類がカスタム フィールドとしてではなく、そのまま保存されていることを確認することです。これを行うには、このシリーズのパート 1 で作成した

save_custom_meta() 関数に戻って変更します。

まず、フィールド ループでスキップします。次の行を見つけます:

リーリー

次に、次の行を追加します:

リーリー

次に、foreach ループの後に次のコードを追加します。 リーリー

これは、カテゴリ選択フィールドから値を取得し、それを投稿のカテゴリ用語として設定するだけです。


发布选择

另一个不太可能但有用的字段是通过将 ID 保存在自定义字段中来将另一个帖子与某个帖子关联起来。这非常类似于 CMS,我发现它对于诸如链接幻灯片帖子类型以转到网站上的另一个帖子或页面之类的事情非常有用,只需从下拉菜单中选择它即可。您可以稍后在另一个函数中使用该 ID 查询该帖子,以从该帖子中获取您需要的任何信息。

array(
	'label' => 'Post List',
	'desc' => 'A description for the field.',
	'id' 	=>  $prefix.'post_id',
	'type' => 'post_list',
	'post_type' => array('post','page')
)

我们这里有所有常见的嫌疑人,但最后我们添加了一个额外的变量来保存您想要在列表中的帖子类型。您可以在此数组中包含帖子、页面和任何其他自定义帖子类型。

// post_list
case 'post_list':
$items = get_posts( array (
	'post_type'	=> $field['post_type'],
	'posts_per_page' => -1
));
	echo '<select name="'.$field['id'].'" id="'.$field['id'].'">
			<option value="">Select One</option>'; // Select One
		foreach($items as $item) {
			echo '<option value="'.$item->ID.'"',$meta == $item->ID ? ' selected="selected"' : '','>'.$item->post_type.': '.$item->post_title.'</option>';
		} // end foreach
	echo '</select><br /><span class="description">'.$field['desc'].'</span>';
break;

您可以添加很多选项来过滤此查询,但我们使用的是对设置帖子类型的所有帖子的基本抓取。

  • 查询所有帖子
  • 打开选择字段并添加空白值
  • 循环遍历每个帖子,并将 ID 设置为选项的值,并将标有帖子类型的标题设置为可供选择的显示文本
  • 关闭循环和选择字段并添加说明

结论

如果到目前为止您一直在关注本系列的两个部分,那么您的最终盒子应该如下图所示:

詳細: 再利用可能なカスタム メタ ボックス: 詳細フィールド

我们确实正在填写可重复使用的模板,用于创建可重复的自定义元框字段,并添加了这种高级甚至非正统的字段。我们将在下一篇文章中用一些更棘手但有用的字段(例如日期选择器和图像上传器)来结束该系列。

以上が詳細: 再利用可能なカスタム メタ ボックス: 詳細フィールドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPの継続的な使用:その持久力の理由PHPの継続的な使用:その持久力の理由Apr 19, 2025 am 12:23 AM

まだ人気があるのは、使いやすさ、柔軟性、強力なエコシステムです。 1)使いやすさとシンプルな構文により、初心者にとって最初の選択肢になります。 2)Web開発、HTTP要求とデータベースとの優れた相互作用と密接に統合されています。 3)巨大なエコシステムは、豊富なツールとライブラリを提供します。 4)アクティブなコミュニティとオープンソースの性質は、それらを新しいニーズとテクノロジーの傾向に適応させます。

PHPおよびPython:類似点と相違点を調査しますPHPおよびPython:類似点と相違点を調査しますApr 19, 2025 am 12:21 AM

PHPとPythonはどちらも、Web開発、データ処理、自動化タスクで広く使用されている高レベルのプログラミング言語です。 1.PHPは、ダイナミックウェブサイトとコンテンツ管理システムの構築によく使用されますが、PythonはWebフレームワークとデータサイエンスの構築に使用されることがよくあります。 2.PHPはエコーを使用してコンテンツを出力し、Pythonは印刷を使用します。 3.両方ともオブジェクト指向プログラミングをサポートしますが、構文とキーワードは異なります。 4。PHPは弱いタイプの変換をサポートしますが、Pythonはより厳しくなります。 5. PHPパフォーマンスの最適化には、Opcacheおよび非同期プログラミングの使用が含まれますが、PythonはCprofileおよび非同期プログラミングを使用します。

PHPおよびPython:さまざまなパラダイムが説明されていますPHPおよびPython:さまざまなパラダイムが説明されていますApr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPとPython:彼らの歴史を深く掘り下げますPHPとPython:彼らの歴史を深く掘り下げますApr 18, 2025 am 12:25 AM

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPとPythonの選択:ガイドPHPとPythonの選択:ガイドApr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPとフレームワーク:言語の近代化PHPとフレームワーク:言語の近代化Apr 18, 2025 am 12:14 AM

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

PHPの影響:Web開発などPHPの影響:Web開発などApr 18, 2025 am 12:10 AM

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?Apr 17, 2025 am 12:25 AM

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境