web-dev-qa-db-fra.com

Créer une playlist audio en obtenant l'identifiant du parent de la page

Donc maintenant, le site crée automatiquement des pages quand un article est mis à jour. Je veux que cette page inclue une playlist audio. Donc, ce que je fais, c'est simplement ajouter le shortcode: [playlist]. Ensuite, lorsque les fichiers audio sont attachés à la page, la liste de lecture est automatiquement générée.

Je peux confirmer que cette méthode fonctionne avec les identifiants spécifiés.

Le problème est , que 3 pages différentes sont créées et que le son doit être attaché aux trois pages. Ma solution est donc de créer une autre page, de définir les fichiers audio comme enfants de cette page et de créer les trois pages originales de la nouvelle page. Ensuite, je pourrais utiliser le shortcode [playlist], mais lui dire d'obtenir l'id de la page parente.

Exemple:

[playlist id="<?php get_parent_id ?>"]

ou quelque chose comme ça.

Le problème est que je ne peux pas obtenir l'ID parent. J'ai essayé plusieurs lignes de code différentes et rien ne fonctionnera. La liste de lecture obtient simplement l'ID 0 par défaut, ce qui est le cas lorsque id="" est laissé vide.

Tout cela va dans le fichier functions.php dans le répertoire de mon thème.

-

Peut-être y a-t-il une meilleure façon de le faire, alors, cela semble être la solution la plus simple, si seulement je pouvais obtenir l'ID parent direct. Ça doit exister.

1
Nicholas Kearney

Voici ma solution:

Le catalogue est un champ personnalisé dans mon post.

Je crée une page "factice" avec uniquement le numéro de catalogue et j'attache les fichiers MP3 à cette page.

$catalogue = get_field('catalogue');
$parent_id = get_page_by_title(strtolower($catalogue));  
$direct_id = $parent_id->ID;
$promo_page_content = [playlist id=" . $direct_id . '"]';

Je réalise que ce n’est probablement pas la meilleure façon d’écrire cela. Je suis nouveau en PHP. Mais pour l'instant, cela va le mettre ensemble. J'espère que cela aidera quelqu'un d'autre ayant le même problème.

0
Nicholas Kearney

Avez-vous essayé la fonction suivante:

<?php get_post_ancestors( $post-ID ) ?>

Le dernier message dans le tableau retourné doit être l'ancêtre du plus haut niveau.

Cela vient du Codex.

0
Svartbaard