web-dev-qa-db-fra.com

Comment les utilisateurs peuvent-ils créer une "liste de lecture" de publications?

J'ai un site Web audio et je veux permettre aux utilisateurs de créer des listes de lecture personnalisées à partir de messages.

J'utilise des publications sous forme d'albums contenant les pistes. J'ai pensé créer un type de message personnalisé et l'utiliser pour contenir une liste de lecture de sélection d'utilisateurs basée sur les messages par défaut.

Est-ce une bonne idée ou existe-t-il un meilleur moyen de permettre aux utilisateurs de créer une liste de lecture personnalisée?.

Remarques:

  • J'ai jeté un œil à ce tutoriel . C'est ce que je cherche, mais pour des morceaux individuels dans le post.
  • L’audio est stocké dans des tableaux dans des champs personnalisés, c.-à-d. custom_audio{ audio=>"name", url=>"www.text.com"}
3
user5601

Ce que vous recherchez, c'est de créer une relation entre un type de publication personnalisé et le type de publication.

Si vos utilisateurs disposent d'une fonctionnalité d'édition pour le CPT, alors oui, c'est une bonne idée d'utiliser le CPT pour conserver les informations sur les albums (messages normaux).

La solution la plus simple et la plus rapide consiste à utiliser un plugin.

Posts to Posts est exclusivement destiné à cela (je souligne):

Ce plugin vous permet de créer de nombreuses relations entre des publications de tout type: publication, page, personnalisation, etc. Quelques exemples d'utilisation:

  • listes organisées manuellement des postes connexes
  • série post
  • produits connectés aux détaillants
  • etc.

De plus, vous pouvez créer des relations plusieurs à plusieurs entre les publications et les utilisateurs. Donc, vous pouvez aussi implémenter:

  • messages favoris des utilisateurs
  • plusieurs auteurs par publication
  • etc.

Et un autre est Champs personnalisés avancés . Comme je suis un utilisateur régulier, je peux illustrer son utilisation pour ce cas.

Créer un groupe de champs avec la configuration suivante:

advanced-custom-fields configuration
Cliquez pour agrandir

Cela résulte en ceci:

advanced-custom-fields result

Le résultat instantané a un petit truc cependant. La boîte normale générée par ACF a une hauteur très courte.
Pour modifier la hauteur de la boîte, utilisez le code suivant dans le fichier functions.php de votre thème ou un plugin custom qui rend ce thème indépendant.

/** 
 * 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
}

Enfin , lisez la documentation du plugin pour savoir comment saisir la valeur du champ album_posts et lire cette musique funky :)

1
brasofilo