0

WordPressには、カスタムの投稿タイプの「ビデオ」があります。ここで、(通常の)投稿の編集ページに、カスタム投稿タイプの「ビデオ」のすべてのビデオからビデオを選択できる「注目のビデオ」フィールドが必要です。

どこから始めればいいですか?

PS:プラグインはありません。

4

1 に答える 1

2

簡単な方法:

カスタム フィールドを作成し (編集ページの右上隅にある [画面オプション] をクリックしてカスタム フィールドを有効にします)、リンク先のビデオの ID の値を付けて「featuredVideo」と呼びます。

次に、単一の投稿テンプレートを次のように呼び出します。

<?php
$fvID = get_post_meta(get_the_ID(), 'featuredVideo', true);
?>
<a href="<?php echo get_permalink($fvID); ?>">Check out the Featured Video!</a>

最良の方法:

シンプルなドロップダウンを使用して、メタ ボックスを投稿エディターに追加し、ビデオ タイプのすべての投稿から選択できます。これには、functions.php に適切なコードのチャンクが必要であり、情報をメタデータとして保存する必要がありますが、操作するためのクリーンなインターフェイスが提供され、それを作成するために ID を追跡する必要がなくなります。仕事。

functions.php -

add_action('add_meta_boxes', 'add_featured_video_meta');
add_action('save_post', 'save_featured_data');

function add_featured_video_meta()
{
    add_meta_box( 
        'featured_video_meta',
        'Add Featured Video',
        'featured_video_inner',
        'post',
        'side'
    );
}

function featured_video_inner($post)
{
    wp_nonce_field(basename(__FILE__), 'featured_video_nonce');
    $q = new WP_Query(array('post_type'=>'video', 'posts_per_page'=>-1));
?>
    <label for="featuredVideo">Select a Video: </label>
    <select name="featuredVideo">
    <option value="0">Select a Video</option>
<?php
    if($q->have_posts()) : while($q->have_posts()) : $q->the_post();
        $selected = get_post_meta($post->ID, 'featuredVideo', true) === get_the_ID() ? ' selected="selected"' : '';
        echo '<option value="'.get_the_ID().'"'.$selected.'>'.get_the_title().'</option>';
    endwhile;endif;
?>
    </select>
<?php
}

function save_featured_data($post_id)
{
    if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) 
        return;
    if(!wp_verify_nonce($_POST['featured_video_nonce'], basename(__FILE__)))
        return;
    if(!current_user_can('edit_post', $post_id))
        return;

    update_post_meta($post_id, 'featuredVideo', $_POST['featuredVideo']);
}

上記の例はテストされていないため、すぐに機能することを保証することはできませんが、それがあなたが取りたいアプローチである場合、難しい部分は本質的にあなたのために行われます. カスタム メタ ボックスが機能するようになったら、最初の例で使用したのとまったく同じ方法で、単一の投稿テンプレートで投稿メタデータを参照できます。

いろいろと試してみて、自分に最適なものを見つけてください。

于 2012-08-14T14:13:14.617 に答える