2012-01-13 12 views
0

私はいくつかのカスタムメタボックスとフィールドを持っている "dictionary_entry"と呼ばれるカスタムpost_typeを作成するプラグインを書いています。カスタム投稿作成者がオーディオクリップをアップロードできる追加フィールドを追加したいと思います。Wordpress:メディアアップローダとカスタムメタボックスフィールドを統合する方法は?

私はいくつかの掘り下げを行い、コードを試しましたhereしかし、私はそれを動作させることができません。

私の質問への1つの可能な答えは、フィールドの "タイプ"パラメータになると思います。私は "テキスト"、 "テキストエリア"、 "時間"、 "色"、 "ラジオ"などを見てきましたが、私はすべての可能性のリストを見つけることができませんでした。フィールドタイプが「ファイル」または「アップロード」の可能性がありますか?

カスタムpost_typeを追加するコードはスキップしますが、ここにメタボックスを追加するコードを示します(他の誰かがこれを使用しようとしている場合は、カスタムpost_typeを 'ページのパラメータ):

//meta box code 

$meta_boxes = array(); 

$meta_boxes[] = array(
'id' => 'examples',       // meta box   id, unique per meta box 
'title' => 'Examples',   // meta box title 
'pages' => array('dictionary_entry'), // post types, accept custom post types as well, default is array('post'); optional 
'context' => 'normal',      // where the meta box appear: normal (default), advanced, side; optional 
'priority' => 'high',      // order of meta box: high (default), low; optional 

'fields' => array(       // list of meta fields 

    array(
     'name' => 'Example 1',     // field name 
     'desc' => 'Use it in a sentence? EX: Kanien\'kéha kahrónkha.', // field description, optional 
     'id' => $prefix . 'example1',    // field id, i.e. the meta key 
     'type' => 'text',      // text box 
     'std' => '',     // default value, optional 
     'validate_func' => 'check_apos'   // validate function, created below, inside RW_Meta_Box_Validate class 
    ), 

    array(
     'name' => 'Translation 1',     // field name 
     'desc' => 'What does the sentence mean? EX: I speak Mohawk.', // field description, optional 
     'id' => $prefix . 'ex_translation1',    // field id, i.e. the meta key 
     'type' => 'text',      // text box 
     'std' => '',     // default value, optional 
     'validate_func' => 'check_apos'   // validate function, created below, inside RW_Meta_Box_Validate class 
    ) 
) 
); 

foreach ($meta_boxes as $metabox) { 
add_meta_box... //see the codex for add_meta_box() 
} 
+0

私が直接あなたの質問に答えるためにPHPチョップを持っていないが、おそらく誰か他の人のコードを掘り下げることは役立つかもしれない:ウィジェット/プラグインをhttp://tri.be/shop/wordpress-image-widget/ ですかなりシンプルで、過去のカスタムワードプレステーマに使用するためのいくつかの変更を加えました。彼らはコードにメディアアップローダを統合していますが、あまりにも多くのコード行がありません。がんばろう –

答えて

4

私はこのコードを掘ることによってこれを見つけましたhere。あなたが見れば、上で引用した私のコードの部分を認識するでしょう。私はもともとこのクラスを使っていましたが、それを完全には理解していませんでした。これは、さまざまなメタボックス/フィールドを追加するために呼び出すことができるカスタムクラスです。

私は「Wordpress APIとは対照的に」このクラスに実際に属していると思う "タイプ"パラメータと、デフォルトのファイルピッカーウィンドウを表示するタイプ: 'file'を許可していることが判明しました(内蔵のメディアアップローダーではありません)。私の目的のために、これは大丈夫です。なぜなら、すべてのすてきなオプションは必要ないからです。

あなたがこれを読んでいるなら、おそらくすでにこの質問をGoogleで検索していて、これを部分的に説明するさまざまな投稿があります。それが価値あるものであれば、これは、ALSOがカスタムのpost_types(かなりの量のハッキングなし)で動作するこの機能を追加する最も簡単な方法であることが判明しました。私はこれが他の人にとって有益だと思っています。

関連する問題