web-dev-qa-db-fra.com

modèle de page pour la pièce jointe?

hé les gars, je n'ai rien trouvé sur le web. Est-il possible d'avoir un modèle personnalisé pour la page de pièce jointe d'image. Je me demande s’il est possible d’ajouter une navigation à la page d’attachement d’image afin que les gens puissent facilement naviguer dans une galerie.

Peut-être qu'il est même possible d'ajouter des commentaires à chaque image?

edit: En outre, est-il également possible de demander si je suis actuellement sur une page de pièce jointe? Par exemple. pour la chapelure je veux insérer quelque chose comme "accueil> retour à poster> current_image.jpg"

éditer/mettre à jour:

function breadcrumbs() {
    if (!is_home()) {
        echo "<a href='" . get_bloginfo('home') . "' title='Home'>Home</a> &rang; ";
        if (is_category()) {
            $category = get_the_category(); 
            echo $category[0]->cat_name;
        } else if (is_single()) {
            the_category('title_li=');
            echo " &rang; ";
            the_title();
        } else if (is_page()) {
            $ancestors = get_post_ancestors($post);
            // echo ancestors
            foreach($ancestors as $id) {
                echo "<a href='" . get_permalink( $id ) . "' title='" . get_the_title( $id ) . "'>" . get_the_title( $id ) . "</a> &rang; ";
            }
        } else if (is_tag()) {
            global $wp_query;
            $tag = get_term( $wp_query->queried_object_id, 'post_tag');
            echo "Tag &rang; " . $tag->name;
        } else if (is_search()) {
            echo " Searchresults &rang; " . get_search_query();
        } else if (is_404()) {
            echo "Not found";
        //} else if ( is_attachment() ) {
        } else if ($post->post_type == 'attachment') {
            //echo "<a href='" . get_permalink() . "'>" . get_the_title() . "</a>";
            echo "doesn't work?";
        }
    }
}
1
mathiregister

WordPress prend en charge plusieurs types de modèles de pièces jointes. La fonction get_attachment_template dans wp-includes/theme.php fournit cette prise en charge; cela s'appelle dans wp-includes/template-redirect.php. Si votre thème comprend attachment.php, toutes vos pièces jointes seront rendues avec ce modèle. Si votre thème comprend également image.php, toutes vos images utiliseront ce modèle tant qu'elles auront le type post_mime_type de image/*.

Il est certainement possible d'ajouter une navigation dans les galeries. Voir wp-content/themes/twentyten/loop-attachment.php qui utilise les fonctions previous_image_link et next_image_link.

Le modèle de pièce jointe de Twentyten appelle comments_template afin que vous puissiez collecter des commentaires sur chaque photo. Vous devez simplement vous assurer que votre message est lié aux pages des pièces jointes et non directement aux images.

Vous pouvez appeler is_attachment pour déterminer si l'objet demandé est une pièce jointe.

2
Andy

Réponse courte - oui.

Les pièces jointes sont servies par des fichiers modèles basés sur leur type mime. Ainsi, si votre pièce jointe est une image/jpg, par exemple, WordPress recherchera tout d'abord un fichier modèle nommé image.php, puis jpg.php, puis attachment.php. , avant de retomber sur un autre fichier modèle (single.php ou index.php). Il existe un bon graphique montrant la hiérarchie des modèles sur la page du Codex .

Cela ne fonctionne que si vous accédez à la pièce jointe via la structure de réécriture de WP (c.-à-d. Lorsque vous insérez l'image, choisissez l'option "link to post" plutôt que "link to file". L'URL devrait ressembler à domain.com/post. -name/attachment-name ... L'accès à l'URL du fichier contourne directement le système du temple WordPress.

Et, si vous voulez vérifier si vous êtes sur une page de pièce jointe, vous pouvez toujours vérifier le type de message, c.-à-d.

if ($post->post_type == 'attachment') {

Bien sûr, dans un modèle attachment.php, il n'y a pas de readon à vérifier, vous savez déjà que vous êtes sur une page de pièce jointe.

6
goldenapples