カスタム投稿タイプにカスタムフィールドを追加する方法は?
-
-
http://wordpress.org/extend/plugins/types/を使用しますUse http://wordpress.org/extend/plugins/types/
- 0
- 2012-07-30
- Ajay Patel
-
6 回答
- 投票
-
- 2011-05-13
これはおそらくあなたが思っているよりも複雑です.フレームワークの使用を検討します:
独自のチュートリアルを作成したい場合は、次のチュートリアルをご覧ください.
This is probably more complicated than you think, I would look into using a framework:
If you want to write your own , here are some decent tutorials:
-
本当に難しいでしょう.投稿タイプや分類法の場合と同じように、関数にレジスタコードを追加するのと同じくらい簡単だと思いました.really it would be that hard. I thought it would be as simple as adding a register code to my functions like we do with post types and taxonomies.
- 1
- 2011-05-13
- xLRDxREVENGEx
-
この答えに1つプラスしますが、それほど複雑ではありません.thinkvitamin.comリンクは、メタボックスを追加して保存する方法を説明する素晴らしい仕事をしています.sltaylor.co.ukリンクは、いくつかの優れたコーディング手法の使用に関する優れたチュートリアルです.`save_post`フックを使用するときは注意が必要です.それは奇妙な時に呼ばれます.使用時に発生する可能性のあるエラーを確認するには、WP_DEBUG変数をtrueに設定してください.I'll plus one this answer, but it's not too complex. The thinkvitamin.com link does a great job explaining how to add the metaboxes and save them. The sltaylor.co.uk link is an awesome tutorial on using some great coding practices. My word of caution is be careful when using the `save_post` hook. It's called at weird times. Make sure to have WP_DEBUG variable set to true in order to see potential errors that arise when using it.
- 1
- 2011-05-13
- tollmanz
-
私がthinkvitaminリンクを使用した更新だけで、それは非常に役立ち、カスタムフィールドの設定に関する簡単な説明でした.Just an update i used the thinkvitamin link and that helped tremendously and it was a cake walk on setting up custom fields
- 2
- 2011-05-13
- xLRDxREVENGEx
-
- 2013-04-23
supports
引数を追加/編集して(register_post_type
を使用している間)、カスタム投稿タイプの投稿編集画面にcustom-fields
を含めます:'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail', 'custom-fields', 'revisions' )
出典: https://codex.wordpress.org/Using_Custom_Fields#Displaying_Custom_Fields
>Add/edit the
supports
argument ( while usingregister_post_type
) to include thecustom-fields
to post edit screen of you custom post type:'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail', 'custom-fields', 'revisions' )
Source: https://codex.wordpress.org/Using_Custom_Fields#Displaying_Custom_Fields
-
これで問題が解決する理由を説明していただけますか?Can you please explain why this could solve the issue?
- 2
- 2013-04-23
- s_ha_dum
-
はい、これは機能します. 誰が答えを-1したか.取り戻して頂けますか? よろしく、Yes, this works. Who -1'ed the answer. Can you please take it back? Regards,
- 1
- 2013-07-25
- Junaid Qadir
-
...その後.........?...and then.........?
- 8
- 2016-10-26
- Mark
-
- 2014-01-30
検証を追加する必要がありますが、このアクションは現在のバージョンのWordPressでは複雑ではないようです.
基本的に、カスタムフィールドをカスタム投稿タイプに追加するには2つの手順が必要です.
- カスタムフィールドを保持するメタボックスを作成します
- カスタムフィールドをデータベースに保存する
これらの手順はここでグローバルに説明されています: http://wordpress.org/support/topic/is-it-possible-to-add-an-extra-field-to-a-custom-post-type
例:
「function」というカスタムフィールドを「prefix-teammembers」というカスタム投稿タイプに追加します.
最初にメタボックスを追加します:
function prefix_teammembers_metaboxes( ) { global $wp_meta_boxes; add_meta_box('postfunctiondiv', __('Function'), 'prefix_teammembers_metaboxes_html', 'prefix_teammembers', 'normal', 'high'); } add_action( 'add_meta_boxes_prefix-teammembers', 'prefix_teammembers_metaboxes' );
「prefix-teammembers」を追加または編集すると、
add_meta_boxes_{custom_post_type}
フックがトリガーされます.add_meta_box()
関数.上記のadd_meta_box()
の呼び出しは、prefix_teammembers_metaboxes_html
であり、フォームフィールドを追加するためのコールバックです.function prefix_teammembers_metaboxes_html() { global $post; $custom = get_post_custom($post->ID); $function = isset($custom["function"][0])?$custom["function"][0]:''; ?> <label>Function:</label><input name="function" value="<?php echo $function; ?>"> <?php }
2番目のステップでは、データベースへのカスタムフィールドがあります.保存すると、
save_post_{custom_post_type}
フックがトリガーされます(v 3.7以降、 https://stackoverflow.com/questions/5151409/wordpress-save-post-action-for-custom-posts ).これをフックして、カスタムフィールドを保存できます:function prefix_teammembers_save_post() { if(empty($_POST)) return; //why is prefix_teammembers_save_post triggered by add new? global $post; update_post_meta($post->ID, "function", $_POST["function"]); } add_action( 'save_post_prefix-teammembers', 'prefix_teammembers_save_post' );
Although you should have to add some validation, this action does not seem to be complicated for the current version of WordPress.
Basically you need two steps to add a Custom Field to a Custom Post Type:
- Create a metabox which holds your Custom Field
- Save your Custom Field to the database
These steps are globally described here: http://wordpress.org/support/topic/is-it-possible-to-add-an-extra-field-to-a-custom-post-type
Example:
Add a Custom Field called "function" to a Custom Post Type called "prefix-teammembers".
First add the metabox:
function prefix_teammembers_metaboxes( ) { global $wp_meta_boxes; add_meta_box('postfunctiondiv', __('Function'), 'prefix_teammembers_metaboxes_html', 'prefix_teammembers', 'normal', 'high'); } add_action( 'add_meta_boxes_prefix-teammembers', 'prefix_teammembers_metaboxes' );
If your add or edit a "prefix-teammembers" the
add_meta_boxes_{custom_post_type}
hook is triggered. See http://codex.wordpress.org/Function_Reference/add_meta_box for theadd_meta_box()
function. In the above call ofadd_meta_box()
isprefix_teammembers_metaboxes_html
, a callback to add your form field:function prefix_teammembers_metaboxes_html() { global $post; $custom = get_post_custom($post->ID); $function = isset($custom["function"][0])?$custom["function"][0]:''; ?> <label>Function:</label><input name="function" value="<?php echo $function; ?>"> <?php }
In the second step you have your custom field to the database. On saving the
save_post_{custom_post_type}
hook is triggered (since v 3.7, see: https://stackoverflow.com/questions/5151409/wordpress-save-post-action-for-custom-posts). You can hook this to save your custom field:function prefix_teammembers_save_post() { if(empty($_POST)) return; //why is prefix_teammembers_save_post triggered by add new? global $post; update_post_meta($post->ID, "function", $_POST["function"]); } add_action( 'save_post_prefix-teammembers', 'prefix_teammembers_save_post' );
-
「prefix_teammembers_save_postが新規追加によってトリガーされるのはなぜですか?」あなたは答えを見つけましたか、私はまた私が思い出せない余分な関数トリガーにつまずいていますか?"why is prefix_teammembers_save_post triggered by add new?" have you found an answer, i am also stumbling on a extra function trigger which i can't recall?
- 0
- 2015-02-18
- alex
-
「「function」というカスタムフィールドを「prefix-teammembers」というカスタム投稿タイプに追加します.」「called」とはどういう意味ですか?名前?singular_name?ラベル?register_post_typeの最初の引数として使用される文字列かもしれませんまたは、一貫している限り、それが何であるかは問題ではないかもしれません."Add a Custom Field called 'function" to a Custom Post Type called 'prefix-teammembers'." What does "called" mean? The name? The singular_name? The label? Maybe it's the string used as the first argument in the register_post_type function. Or maybe it doesn't matter what it is so long as it's consistent.
- 0
- 2019-10-07
- arnoldbird
-
- 2018-01-03
カスタムメタボックスとカスタムフィールドにはさまざまなプラグインがあります.開発者に焦点を当てたプラグインを検討している場合は、
メタボックスを試してみてください.軽量で非常に強力です. メタボックス/カスタムフィールドのコードを作成する方法に関するチュートリアルを探している場合は、これは良いスタートです.これはシリーズの最初の部分であり、コードを改良して簡単に拡張できるようにするのに役立つ可能性があります.
There are various plugins for custom meta boxes and custom fields. If you look at a plugin that focuses on developers, then you should try Meta Box. It's lightweight and very powerful.
If you're looking for a tutorial on how to write code for a meta box / custom fields, then this is a good start. It's the first part of a series that might help you refine the code to make it easy to extend.
-
- 2020-08-12
この質問は古いことは知っていますが、トピックの詳細については
WordPressには、カスタムフィールドのサポートが組み込まれています.カスタム投稿タイプがある場合、必要なのは、@ kubanteが回答したように、register_post_type内のサポート配列内に「custom-fields」を含めることだけです.
注このオプションは、オンにする必要がある投稿やページなどのネイティブ投稿タイプでも使用できます
現在、このカスタムフィールドは非常に基本的であり、値として文字列を受け入れます.多くの場合、それで問題ありませんが、より複雑なフィールドの場合は、「AdvancedCustomFields」プラグインを使用することをお勧めします
I know this question is old but for more info about the topic
WordPress has built-in support for custom fields. If you have a custom post type then all you need is to include 'custom-fields' inside the support array inside of register_post_type as answered by @kubante
Note that this option is also available for native post types like posts and pages you just need to turn it on
Now This custom field is very basic and accepts a string as a value. In many cases that's fine but for more complex fields, I advise that you use the 'Advanced Custom Fields' plugin
-
- 2017-10-28
// slider_metaboxes_html , function for create HTML function slider_metaboxes( ) { global $wp_meta_boxes; add_meta_box('postfunctiondiv', __('Custom link'), 'slider_metaboxes_html', 'slider', 'normal', 'high'); } //add_meta_boxes_slider => add_meta_boxes_{custom post type} add_action( 'add_meta_boxes_slider', 'slider_metaboxes' );
完璧な知識
// slider_metaboxes_html , function for create HTML function slider_metaboxes( ) { global $wp_meta_boxes; add_meta_box('postfunctiondiv', __('Custom link'), 'slider_metaboxes_html', 'slider', 'normal', 'high'); } //add_meta_boxes_slider => add_meta_boxes_{custom post type} add_action( 'add_meta_boxes_slider', 'slider_metaboxes' );
Perfect knowledge
わかりました.いくつかのカスタム投稿タイプといくつかの分類法を登録しました.今、私は一生の間、カスタム投稿タイプにカスタムフィールドを追加するために必要なコードを理解できません.
ドロップダウンと1行のテキスト領域が必要です.ただし、投稿タイプ用に個別のフィールドも必要です.したがって、投稿タイプ1には3つのフィールドがあり、投稿タイプ2には4つのフィールドがありますが、フィールドは異なります.
ヒントは、コーデックスを調べて何かを見つけるのに役立ちますが、
functions.php
ファイルに何を追加する必要があるのか理解できません