ホームページ >CMS チュートリアル >&#&プレス >WordPressにタイプを投稿するためにメタボックスを追加します

WordPressにタイプを投稿するためにメタボックスを追加します

Jennifer Aniston
Jennifer Anistonオリジナル
2025-02-10 10:34:09767ブラウズ

Adding Meta Boxes to Post Types in WordPress

WordPress Webサイトビルダーまたは開発者は、多くの場合メタボックスを使用します。この記事では、メタボックスとカスタム記事タイプとの関連性と統合、およびメタボックスを使用してWordPressフロントエンドで保存されたデータを使用する方法に飛び込みます。

コアポイント

  • add_meta_box()関数(マウントにadd_meta_boxesアクション)を使用して、任意の記事タイプの編集インターフェイスにメタボックスを追加します。この関数を使用して、メタボックスを複数の記事タイプ(記事、ページ、カスタム記事タイプ「書籍」など)、または既存および将来のすべての記事タイプに追加できます。
  • メタボックスは、記事タイプの名前をadd_meta_boxesアクションフックに追加することにより、特定の記事タイプに制限できます。 register_post_type()関数は、記事タイプをカスタマイズするために使用され、そのパラメーター配列にはregister_meta_box_cbが含まれます。その値は、メタボックスを設定するときに呼び出されるコールバック関数です。
  • global_notice_meta_box_callback関数には、メタボックスのフォームフィールドが含まれています。 save_postアクションフックドラフトまたは公開として記事を保存するときに、テキスト領域に保存されたプロセスデータをフックします。このデータは、対応する記事コンテンツを保存する前に、メタボックスに入力されたデータを表示することにより、効果的に利用できます。

メタボックスを記事タイプの画面

に追加します

Narayan Prustyは、すべてではないにしても、PHP関数、パラメーター、およびメタボックスを作成するアクションフックをカバーしています。

任意の記事タイプの編集画面にメタボックスを追加するには、add_meta_box()関数を使用してadd_meta_boxesアクションに添付できます。

次のコードは、メタボックスを記事編集画面に追加します。メタボックスにフォームフィールドを表示するために使用されるglobal_notice_meta_box_callback関数に注意してください。後で詳細に紹介します。

<code class="language-php">function global_notice_meta_box() {
    add_meta_box(
        'global-notice',
        __( '全局公告', 'sitepoint' ),
        'global_notice_meta_box_callback',
        'post'
    );
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );</code>

複数の投稿タイプ画面(記事、ページ、およびカスタムポストタイプ「本」)にメタボックスを追加するには、記事タイプ配列を作成し、配列をループし、タイプのadd_meta_box()を使用してこれらの投稿に追加します。

<code class="language-php">function global_notice_meta_box() {
    $screens = array( 'post', 'page', 'book' );
    foreach ( $screens as $screen ) {
        add_meta_box(
            'global-notice',
            __( '全局公告', 'sitepoint' ),
            'global_notice_meta_box_callback',
            $screen
        );
    }
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );</code>

既存および将来のすべての作成された記事タイプにメタボックスを追加するには、記事タイプアレイを取得し、上記の値を置き換えます。 get_post_types() $screen

メタボックスは、3番目の(
<code class="language-php">function global_notice_meta_box() {
    $screens = get_post_types();
    foreach ( $screens as $screen ) {
        add_meta_box(
            'global-notice',
            __( '全局公告', 'sitepoint' ),
            'global_notice_meta_box_callback',
            $screen
        );
    }
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );</code>
)パラメーターを省略して、既存のすべての投稿タイプと新しい投稿タイプに追加することもできます。

$screen記事タイプ名(この場合は "book")を

アクションフックに添付して、メタボックスを特定の記事タイプに制限することもできます。
<code class="language-php">function global_notice_meta_box() {
    add_meta_box(
        'global-notice',
        __( '全局公告', 'sitepoint' ),
        'global_notice_meta_box_callback'
    );
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );</code>

add_meta_boxes関数は、記事の種類をカスタマイズするために使用され、そのパラメーター配列には

が含まれ、その値はMetaboxを設定するときに呼び出されるコールバック関数です。
<code class="language-php">function global_notice_meta_box() {
    add_meta_box(
        'global-notice',
        __( '全局公告', 'sitepoint' ),
        'global_notice_meta_box_callback'
    );
}
add_action( 'add_meta_boxes_book', 'global_notice_meta_box' );</code>

次のコードを使用して「本」と呼ばれるカスタム記事タイプを作成するとします。

<code class="language-php">function global_notice_meta_box() {
    add_meta_box(
        'global-notice',
        __( '全局公告', 'sitepoint' ),
        'global_notice_meta_box_callback',
        'post'
    );
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );</code>

php関数(上記の値の値)にglobal_notice_meta_box関数定義を追加すると、「本」のカスタム記事タイプの編集画面にメタボックスが追加されます。 register_meta_box_cb add_meta_box()繰り返しますが、これは

関数の例です。

global_notice_meta_box

これまでのところ、WordPressにメタボックスを登録または追加するさまざまな方法を学びました。また、Metaboxのフォームフィールドを含む
<code class="language-php">function global_notice_meta_box() {
    $screens = array( 'post', 'page', 'book' );
    foreach ( $screens as $screen ) {
        add_meta_box(
            'global-notice',
            __( '全局公告', 'sitepoint' ),
            'global_notice_meta_box_callback',
            $screen
        );
    }
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );</code>
関数を作成する必要があります。

global_notice_meta_box_callback以下は、メタボックスにテキスト領域フィールドを含む

関数のコードです。

global_notice_meta_box_callback

<code class="language-php">function global_notice_meta_box() {
    $screens = get_post_types();
    foreach ( $screens as $screen ) {
        add_meta_box(
            'global-notice',
            __( '全局公告', 'sitepoint' ),
            'global_notice_meta_box_callback',
            $screen
        );
    }
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );</code>

アクションフックドラフトまたは公開として記事を保存する際にテキスト領域に保存されたプロセスデータをフックします。 Adding Meta Boxes to Post Types in WordPress save_post

メタボックスのテキスト領域に入力されたデータを使用するには、対応する記事コンテンツを保存するために表示される前にデータを表示します。
<code class="language-php">function global_notice_meta_box() {
    add_meta_box(
        'global-notice',
        __( '全局公告', 'sitepoint' ),
        'global_notice_meta_box_callback'
    );
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );</code>

<code class="language-php">function global_notice_meta_box() {
    add_meta_box(
        'global-notice',
        __( '全局公告', 'sitepoint' ),
        'global_notice_meta_box_callback'
    );
}
add_action( 'add_meta_boxes_book', 'global_notice_meta_box' );</code>
コード説明

最初に、

関数を作成し、記事コンテンツを含む

パラメーターを使用してglobal_notice_before_postフィルターに添付します。 the_content 関数の内部には、現在表示されている記事のwp_postオブジェクトが含まれるグローバル$content変数を含めます。

特定の記事のために保存されたグローバルアナウンスを$postに取得し、それらを

変数に保存します。

get_post_meta次に、アナウンスをdivにラップして、$global_notice変数に保存します。

最後に、をグローバルな発表で$noticeに接続して、実際の記事コンテンツに接続します。

以下は、記事の内容の前にグローバルな発表を含む記事のスクリーンショットです。 $notice $content

概要Adding Meta Boxes to Post Types in WordPress

このチュートリアルでは、WordPress管理画面にメタボックスを登録するさまざまな方法と、それらを記事タイプに制限する方法を学びました。

また、メタボックスにフォームフィールドを追加する方法と、記事を保存または公開するときに入力データを保存する方法も確認しました。 最後に、入力されたデータをMetaboxに配置する方法を紹介します。

将来の記事では、記事タイプの管理画面にコンテキストヘルプタブを追加する方法について説明します。

質問や提案がある場合は、コメントでお気軽にお問い合わせください。

WordPressの記事タイプにメタボックスを追加する際のFAQ
  • WordPressのメタボックスとは何ですか? WordPressのメタボックスは、管理インターフェイスに表示されるドラッグ可能なボックスです。これらのボックスは、追加の入力フィールドを表示するために使用され、ユーザーはさまざまな種類の記事の機能とレイアウトをカスタマイズできます。記事、ページ、カスタム投稿タイプに追加できます。メタボックスには、テキスト、チェックボックス、選択オプションなど、さまざまな種類のフィールドを含めることができます。

  • WordPressのカスタム投稿タイプにメタボックスを追加する方法は? WordPressのカスタム投稿タイプにメタボックスを追加するには、関数を使用する必要があります。この関数を使用すると、メタボックスID、タイトル、コールバック関数、記事タイプ、コンテキスト、および優先度を指定できます。コールバック関数は、メタボックスの内容を出力するために使用されます。 add_meta_box()

  • 単一の記事タイプに複数のメタボックスを追加できますか?

    はい。各メタボックスには、競合を避けるために一意のIDが必要です。 関数を複数回使用して、異なるパラメーターを使用して複数のメタボックスを追加できます。 add_meta_box()

  • メタボックスフィールドに入力されたデータを保存する方法は?

    メタボックスフィールドに入力されたデータを保存するには、アクションに関数を添付する必要があります。この関数は、NONCEをチェックし、現在のユーザーの権限を確認し、または関数を使用してメタボックスデータをデータベースに保存する必要があります。 save_post update_post_meta() add_post_meta()

  • フロントエンドにメタボックスデータを表示する方法は?
  • フロントエンドにメタボックスデータを表示するには、ループ内の

    関数を使用できます。この関数は、データベースからMetaboxデータを取得し、文字列として返し、テンプレートファイルに出力できます。 get_post_meta()

  • ページと記事にメタボックスを追加できますか?
  • はい。

    関数を使用する場合、記事タイプを「ページ」として指定して、ページにメタボックスを追加できます。 add_meta_box()

  • 記事タイプからメタボックスを削除する方法は?
  • 関数を使用できます。この関数には、パラメーターとしてメタボックスIDと記事タイプが必要です。 remove_meta_box()

  • 記事編集画面のメタボックスの位置をカスタマイズできますか?
  • はい。

    関数のパラメーターは、メタボックスの位置を決定します。考えられる値は、「通常」、「サイド」、「高度」です。 add_meta_box() context

    プラグインによって作成されたカスタム投稿タイプにメタボックスを追加できますか?
  • はい。カスタム記事タイプのスラッグを知り、
  • 関数の

    パラメーターとして使用する必要があります。 add_meta_box() post_type

    メタボックスとそのフィールドのスタイル方法は?
  • CSSを使用して、メタボックスとそのフィールドをスタイリングできます。 Metaboxには「ポストボックス」クラスがあり、Metaboxのフィールドに独自のクラスを追加できます。その後、これらのクラスをCSSで見つけてスタイルを適用できます。
  • 以上がWordPressにタイプを投稿するためにメタボックスを追加しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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