web-dev-qa-db-ja.com

繰り返し可能なカスタムメタフィールド

私はWordPressのバックエンド用のカスタムメタボックスの作成に取り組んでいます。

私はいくつかのフィールド、私の場合は画像のアップロードとテキストの入力が、両方のフィールドを複製できるボタンを使ってメタボックスを追加したいと思います。

私は このチュートリアル に従ってきました、そしてそれはうまく働きます。

しかし、私は複数のフィールドを複製したいので(前述のように、メディアアップローダーとテキスト入力)、上記のチュートリアルはあまりうまくいきません。使用される入力テキストは1つだけです。

今、私は次のようなソースコードを見つけました。

https://github.com/tammyhart/Reusable-Custom-WordPress-Meta-Box /

これは繰り返し可能なフィールドストップで複数のケースを持つことを可能にします(これは私が欲しいものです)、コードだけはあまりにも広範囲であり、PHPクラスにあります。それでは、このコードをチュートリアルのコードに組み入れたいと思います。これを試して、お互いに多くの試行を行います。

今誰かがこれを手伝ってくれるかどうか疑問に思う。私は今までにたくさんのことを試してみました。

ソースコードを見ると、その部分は実際には必要ないので、必要以上に冗長になります。

私はまたコピー/ペーストするために反復可能な単純なケースを試みました、しかし、私はいくつかの変数が存在しないということを含むエラーを得ます。 (これらは、私が見たように、かつてどこにも宣言されていない地獄です...)

残念ながら、私が言ったように、これらのエラーがあります:

Notice: Undefined variable: repeatable_fields in on line 117 
Warning: Invalid argument supp song for foreach () in   
  customers/0/d/a/xxx/httpd.www/wordpress/wp-includes/functions.php on
  line 2638 
Warning: array_filter () Expects parameter 1 to be array,
  null Given in /file/ on line 118 
Notice: Uninitialized string offset: 0 in on
  line 138

コードは次の場所にあります。 http://snippi.com/s/xpwucxg

複数のフィールドを複製する方法

1
Casper

私は何年もの間私自身のカスタムメタフィールドを作成して管理していました、そしてそれがいつも頭痛の種だったことをあなたに言うことができます。私は頻繁にあなたのようなつまずきブロックに出くわし、壁に私の拳をぶつけました。私はプラグインであふれていたかなりの数のサイトで仕事をしていましたが、時にはそれがプラグインで私を悩ませていたので、プロジェクトにとって絶対に重要な場合にのみそれらを使うことを決心しました。

私が遭遇した唯一の信頼できるプラグインの1つは Advanced Custom Fields でした。最初に試してからほぼすべてのプロジェクトで使用しましたが、すべてのプロジェクトの可能性が本当に広がりました。それは本当にうまくフィールドを整理します、そして、25ドルのために彼らはまた私が非常に精通するようになった繰り返し可能なフィールドアドオンを持っています。

それらに打撃を与えなさい。

2
cfx

反復可能フィールドを追加するには、テキスト入力などの配列を作成する必要があります。

array( // Repeatable & Sortable Text inputs
    'label' => 'Typical Day', // <label>
    'desc'  => '', // description
    'id'    => $prefix.'repeatable_typical_day', // field id and name
    'type'  => 'repeatable', // type of field
    'repeatable_fields' =>  array(
            array( // Text Input
                'repeatable_label'  => 'Title', // <label>
                'repeatable_desc'   => '', // description
                'repeatable_id' => $prefix.'program_act_title', // field id and name
                'repeatable_type'   => 'text' // type of field
            ),
            array( // Text Input
                'repeatable_label'  => 'Description', // <label>
                'repeatable_desc'   => '', // description
                'repeatable_id' => $prefix.'program_act_desc', // field id and name
                'repeatable_type'   => 'text' // type of field
            )

    )

)

これにより、画像、テキスト入力などを追加できます。

-------編集--------

Tammyはコードを更新し、問題を修正しました。最新バージョンは機能します。 https://github.com/tammyhart/Reusable-Custom-WordPress-Meta-Box /

0
Oterox