web-dev-qa-db-fra.com

Comment obtenir un fichier attaché dans wordpress à partir d'un article personnalisé

J'utilise le plugin de surveillance Download

Je liste les articles par catégorie de la manière suivante

$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); 

<?php

            $args = array(
                'post_type' => 'dlm_download',
                'posts_per_page' =>25,
                'numberposts' => null,
                'dlm_download_category' => $term->slug
            );

                $downloads = get_posts($args);

                foreach ($downloads as $download) {

                    echo '<div class="download-content">';

                        echo '<h3>
                                <a href="" title="Letöltés"><i class="left icon-arrow-down"></i></a>
                                '.$download->post_title.' 
                                <a href="" title="Információ"><i class="right icon-plus"></i></a>
                            </h3>'; 

                        echo '<p>'.$download->post_excerpt.'</p>';

                    echo '</div>';
                }


        ?>

Mais je ne sais pas comment afficher un fichier personnalisé en pièce jointe. Le fichier est contenu dans la table wp_postmeta,

J'ai essayé avec wp_get_attached_ur($download->ID) mais il retourne une chaîne vide

Quelqu'un pourrait-il me donner un indice?

2
Side

En utilisant le plug-in de moniteur de téléchargement, vous ne pouvez pas accéder au fichier directement via une URL, car le plug-in restreint l'accès au dossier du moniteur de téléchargement.

Vous pouvez générer les liens de téléchargement assez facilement, tout en utilisant le compteur de plugins et d’autres méthodes.

Si vous transmettez l'ID du téléchargement sous forme de variable $_GET- à votre installation WordPress, le plug-in se chargera du reste lui-même:

$downurl = get_bloginfo( 'url' )  . '?download=' . $download->ID;

Résultat dans un lien comme http://example.com?download=1234.

La raison pour laquelle vous n'avez pas pu obtenir l'URL de téléchargement à l'aide de wp_get_attached_url() est que le dlm_download que vous avez parcouru est simplement un type de publication personnalisé et non une pièce jointe. La pièce jointe est connectée à downloadCPT par le post_parent. De cette façon, le plugin sait quel téléchargement fournir avec quelle demande.

Votre code pourrait ressembler à quelque chose comme ça:

$args = array(
    'post_type' => 'dlm_download',
    'posts_per_page' => 25,
    'numberposts' => null,
    'dlm_download_category' => $term->slug
);

$downloads = get_posts($args);

foreach ($downloads as $download) {

    echo '<div class="download-content">';

        echo '<h3>
            <a href="' . get_bloginfo( 'url' )  . '?download=' . $download->ID . '" title="Letöltés">
                <i class="left icon-arrow-down"></i>
                '.$download->post_title.'
            </a>
            <a href="' . get_bloginfo( 'url' )  . '?download=' . $download->ID . '" title="Információ">
                <i class="right icon-plus"></i>
            </a>
        </h3>'; 

        echo '<p>'.$download->post_excerpt.'</p>';

    echo '</div>';
}

Cependant, vous pouvez également utiliser les méthodes intégrées du plug-in pour obtenir la même chose.

2
fischi