web-dev-qa-db-ja.com

ユーザーとアップロードボックスによって追加された複数のフィールドを持つメタボックス

私はシステムを構築しようとしています、そこでユーザーは彼がポストに必要なだけ多くのフィールドを追加することができます。私は この スレッドからのコードを使っています。アップロードが機能しないこと以外は、すべて正常に機能します。

これがdynamic_inner_custom_box()関数のforeachループの内側に追加したコードです。

<input class="upload_file" type="text" size="45" id="items[%1$s][picture]" name="items[%1$s][picture]" value="%6$s" />
<input class="upload_button button" type="button" value="Upload File" />
<input class="upload_file_id" type="hidden" id="items[%1$s][picture]_id" name="items[%1$s][picture]_id" value="%6$s" />

%6$s値はitem['picture'] ofcです。これがどのように機能するのか理解できません。アップロードには2つのフィールドがあります - .upload_file.upload_file_id。正しい場合は、私の_idの名前に.upload_fileを追加し、それを.upload_file_idの名前として保存する必要があります。問題は、アップロードthickboxから画像を選択しても、入力フィールドにリンクが表示されないことです。私はしばらく遊んでいて、名前/ IDで遊んでこのリンクを設置することができましたが、データを保存できませんでした。私のコードの何が間違っていますか?どういうわけか保存機能を拡張する必要がありますか?

@editコードをこれに変更した後:

<input class="upload_file" type="text" size="45" id="picture_%1$s" name="picture_%1$s" value="%6$s" />
<input class="upload_button button" type="button" value="Upload File" />
<input class="upload_file_id" type="hidden" id="picture_%1$s_id" name="items[%1$s][picture]" value="%6$s" />

私はようやく何かを保存していて、しばらくの間正しい場所に添付ファイルのリンクを張ることができます。写真を作成すると、リンクは本来あるべき場所に挿入されますが、保存した後にデータベースに保存される番号はいくつかだけになります(添付ファイルIDはおそらく?)。

2
smogg

これが私のやり方です。保管機能を変更する必要はありません。私は一度に両方のフィールドからデータを保存しようとしていました、それがそれがうまくいかなかった理由です。

<input class="upload_file" type="text" size="45" id="picture_%1$s" name="picture_%1$s" value="%6$s" />
<input class="upload_button button" type="button" value="Upload File" />
<input class="upload_file_id" type="hidden" id="picture_%1$s_id" name="items[%1$s][picture]" value="%7$s" />

.upload_file_idに格納されている値は添付ファイルIDです(%7$s == item['picture'])。 .upload_file%6$s)に表示される値は、次のようにwp_get_attachment_image_srcです。

$img = wp_get_attachment_image_src($item['picture']);
$img = $img[0];

そして%6$s$imgに設定します。データベースには添付ファイルIDだけが格納されており、WordPress機能を使ってリンクを表示します。

2
smogg