web-dev-qa-db-ja.com

ユーザはどのように投稿の「プレイリスト」を作ることができますか?

私は音声ウェブサイトを持っています、そして私はユーザーが投稿からカスタムプレイリストを作ることを許可したいです。

トラックを含むアルバムとして投稿を使用しています。カスタム投稿タイプを作成し、それを使用してデフォルトの投稿に基づいてユーザー選択プレイリストを保持することを考えました。

これは良い考えですか、それともユーザーがカスタムプレイリストを作成できるようにするより良い方法がありますか。

ノート:

  • このチュートリアル を見ていました。それは私が探しているものですが、投稿内の個々のトラックのためのものです。
  • 音声はカスタムフィールドの配列、すなわちcustom_audio{ audio=>"name", url=>"www.text.com"}に格納されます。
3
user5601

探しているものは、カスタム投稿タイプと投稿タイプの間の関係を作成することです。

あなたのユーザーがCPTの編集機能を持っているなら、はい、それはアルバム(通常の投稿)についての情報を保持するためにCPTを使うのは良い考えです。

最も簡単で速い方法はプラグインを使うことです。

投稿から投稿 これだけを目的としています(私の強調)。

このプラグインを使用すると、投稿、ページ、カスタムなど、あらゆる種類の投稿間で多対多の関係を作成できます。

  • 関連投稿の手動キュレーションリスト
  • ポストシリーズ
  • 小売業者に接続された製品
  • 等.

さらに、投稿とユーザーの間に多対多の関係を作成できます。だから、あなたも実装することができます:

  • ユーザーのお気に入りの投稿
  • 投稿ごとに複数の作者
  • 等.

そしてもう一つは Advanced Custom Fields です。私は一般ユーザーなので、この場合の使用方法を説明できます。

次の設定でフィールドグループを作成します。

advanced-custom-fields configuration 
拡大するにはクリックしてください

そのは次のようになります。

advanced-custom-fields result 

結果のスナップショットには少しトリックがあります。 ACFが生成する通常の箱は非常に短い高さを持っています。
ボックスの高さを変更するには、テーマのfunctions.phpファイルで次のコードを使用するか、このテーマを独立させる カスタムプラグイン を使用します。

/** 
 * ADJUST THE VALUE OF 'playlists' TO THE CUSTOM POST TYPE SLUG
 * ADJUST THE VALUE OF #acf-album_posts TO MATCH THE FIELD NAME 
 */ 
add_action('admin_head-post.php', 'wpse_73351_admin_head');
add_action('admin_head-post-new.php', 'wpse_73351_admin_head');

function wpse_73351_admin_head()
{
    global $post;

    // Not our post_type, do nothing
    if ( 'playlists' != $post->post_type )
        return;     
    ?>
        <style>
            #acf-album_posts select {
                height: 400px !important;
            }
        </style>
    <?php
}

最後にプラグインのドキュメント を読んでalbum_postsフィールドの値を取得し、そのファンキーな音楽を再生する方法を確認してください:)

1
brasofilo