回答:
それは、「アタッチ」の意味に完全に依存します。
各WordPress投稿には、すでに複数のメディア添付ファイル(写真、ドキュメントなど)を含めることができます。組み込みのアップローダーを使用してこれらをアップロードすると、それらすべてがその特定の投稿IDに「添付」としてマークされます。
これらは後でプログラムによって他の場所で参照できます。たとえば、次のコードは、特定の投稿(Snipplrのコード)のすべての添付ファイルをリストします。
$args = array(
'post_type' => 'attachment',
'numberposts' => null,
'post_status' => null,
'post_parent' => $post->ID
);
$attachments = get_posts($args);
if ($attachments) {
foreach ($attachments as $attachment) {
echo apply_filters('the_title', $attachment->post_title);
the_attachment_link($attachment->ID, false);
}
}
これらの機能はすべて、新しい投稿画面の[アップロード/挿入]の右端にあるデフォルトの[メディアの追加]ボタンからアクセスできます。1枚の画像を追加したら、[ファイルを選択]をクリックして2枚目の画像をアップロードできます。それから三分の一。次に4番目。好きなだけ。
これらの各画像は、コンテンツに挿入されていなくても、投稿に「添付」されます。
$post
を使用$args
し、少なくとも2つの異なるコンテキストで使用しているため、一度に何を実行しようとしているのかを正確に把握することが非常に困難です。しかし、私は上記で投稿したコードをテストしましたが、機能します...
これは、希望どおりのソースファイルを使用した完全なチュートリアルです。
入力フィールドのクローンを作成してマルチ画像をアップロードできます。また、プレビュー、ajaxを使用した画像の削除、マルチ/別の投稿タイプへのマルチメタボックスの追加などを行うことができます。
http://www.deluxeblogtips.com/2010/05/howto-meta-box-wordpress.html
はい、それはかなり可能です。メタボックスについて受け取った応答を参照してください。基本的にはsave_post
、nonceフィールドのフックを追加して確認するだけです。
function my_save_post_callback( $post_id, $post )
{
if ( empty($_POST) || !isset($_POST['my_custom_metabox']) || !wp_verify_nonce( $_POST['my_custom_metabox'], plugin_basename( __FILE__ ) ) )
{
return $post->ID;
}
// Handle the upload here
}
add_action( 'save_post', 'my_save_post_callback', 1, 2);