私はシステムを構築しようとしています、そこでユーザーは彼がポストに必要なだけ多くのフィールドを追加することができます。私は この スレッドからのコードを使っています。アップロードが機能しないこと以外は、すべて正常に機能します。
これが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はおそらく?)。
これが私のやり方です。保管機能を変更する必要はありません。私は一度に両方のフィールドからデータを保存しようとしていました、それがそれがうまくいかなかった理由です。
<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機能を使ってリンクを表示します。