複数の画像をアップロードするためのメタボックスを作成する


8

投稿に複数の画像を添付するメタボックスを作成することは可能ですか?


emenia.es/plugin-subir-imagenes-campo-personalizado-wordpressにメタボックスを投稿、ページ、またはカスタム投稿タイプに追加するいくつかの画像をアップロードするための完全なチュートリアルがあります。スペイン語ですが、問題なく実行できました。 。

回答:


7

それは、「アタッチ」の意味に完全に依存します。

各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番目。好きなだけ。

これらの各画像は、コンテンツに挿入されていなくても、投稿に「添付」されます。


奇妙な理由で、残りのコードが添付されていても、テンプレートの最初の添付ファイルを出力するコードしか取得できません。何か案は?これがコードです... dl.dropbox.com/u/497583/code/wp-attactments.txt
agileapricot

いくつかの異なる変数を使用する必要があります。両方$postを使用$argsし、少なくとも2つの異なるコンテキストで使用しているため、一度に何を実行しようとしているのかを正確に把握することが非常に困難です。しかし、私は上記で投稿したコードをテストしましたが、機能します...
EAMann

6

これは、希望どおりのソースファイルを使用した完全なチュートリアルです。
入力フィールドのクローンを作成してマルチ画像をアップロードできます。また、プレビュー、ajaxを使用した画像の削除、マルチ/別の投稿タイプへのマルチメタボックスの追加などを行うことができます。

http://www.deluxeblogtips.com/2010/05/howto-meta-box-wordpress.html


私はこれを2番目にします。それは魅力のように働きます。
Manny Fleurmond、2011年

あなたが提供したそのリンクは現在死んでいますが、参照中のプロジェクトは完全に本格的な開発者フレンドリーなプラグイン/ライブラリにモーフィングしました。参照:wordpress.org/plugins/meta-boxおよびgithub.com/wpmetabox ...素晴らしい製品のように見えます。
ケリーランドルフ

2

また、http: //www.wpalchemy.comをチェックすることをお勧めします。WPAlchemyは、カスタムメタボックスをサイトに簡単に追加するためのキックアス "クラス"(プラグインの近く)です。私はそれを幅広く使用しており、使いやすさと開発者や急成長しているコミュニティの取り組みに感銘を受けています。


0

はい、それはかなり可能です。メタボックスについて受け取った応答を参照してください。基本的には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);
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.