web-dev-qa-db-fra.com

Je voudrais avoir différents styles pour mes messages en fonction du contenu de chaque message

Voici mon thème wordpress à vérifier (ce n'est pas complètement terminé): http://benlevywebdesign.com/wordpress/

C'est la première fois que je travaille avec php/wordpress et crée des thèmes, donc gardez cela à l'esprit. J'ai un fichier index.php, css et un fichier 960.css et je ne connais pas les autres fichiers que vous pouvez inclure.

Dans mon thème, je souhaiterais avoir différents styles pour mes messages en fonction du contenu de chaque message, comme pour les liens images et vidéo ou les liens audio.

Je souhaite d'abord me concentrer sur un style de photo où la photo sera grande et large et non de la taille d'une vignette ou d'une image de publication normale.

Une fois que j'apprends à avoir différents styles, je peux en ajouter plus car c'est juste le css!


Voici mon code de boucle actuel:

    <!-- ***** Post **** -->
    <div class="grid_2 alpha">
        <div class="date_banner">
            <div class="d"><!-- sidebar 1 --><?php the_time('d'); ?></div>
            <div class="m"><!-- sidebar 1 --><?php the_time('M'); ?></div>
            <div class="y"><!-- sidebar 1 --><?php the_time('Y'); ?></div>
        </div>
        <div class="commentsnumber">
            <?php comments_number('No comment', '1 comment', '% comments'); ?>
        </div>
    </div>

    <div class="grid_10 omega">

      <div class="post">
        <div class="titlepostauthorimage">
            <div class="post-title">
                <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
            </div>
            <div class="post-author-image">

            </div>
            <div class="post-author">
                 <?php the_author_posts_link(); ?>
            </div>
            <div class="post-image">
                <?php the_post_thumbnail( $size, $attr ); ?> 
            </div>
        </div>

        <div class="post-body">
            <?php the_content(); ?>
        </div>
        <div class="post-meta">
            <?php the_category(', '); ?>
            <!-- post tags -->
        </div>
    </div>
    <div class="commentsarrow"> <?php wp_list_comments(); ?> </div>

    </div>
        <!-- ***** END post ***** -->
    <?php endwhile; else: ?>
        <!-- In case no posts were found -->
            <div class="post-cf">Hmmm? Can't. Find. Post.
            </div>
    <?php endif; ?>

Voici un exemple de thème de blog qui fait ce que je veux (3ème message à partir du bas) http://demo.kreativethemes.com/evolution/


J'ai lu sur l'utilisation de la fonction post_class() et sur le fait que je devrais créer un autre fichier php pour le type de publication ou que je pourrais simplement coder la marque directement dans la boucle si c'est davantage ce que je préfère sur cette question CSS pour les types de publication personnalisés (et ont compris ce qu’ils font mais ne savent pas comment le faire)

Je pense que je tiens à mettre les choses au clair si cela n’est pas trop compliqué, comme je l’ai dit plus tôt. Je ne connais pas grand-chose des autres fichiers que vous pouvez inclure.

1
benlevywebdesign

Selon les types dont vous avez besoin, vous pouvez rechercher la fonctionnalité Post Format . Il vous permet de définir des publications standard, des citations, des galeries, etc. (un peu comme Tumblr). Pour l'activer, jetez simplement ceci dans votre thème (probablement functions.php):

add_theme_support( 'post-formats', array( 'aside', 'gallery', 'quote' ) );

Ensuite, dans vos modèles, vous avez quelques options. Vous pouvez soit utiliser des conditionnels pour déchaîner dans single.php, soit créer des fichiers PHP pour chaque format de publication. Dans single.php, vous voudriez quelque chose comme ceci:

get_template_part( 'content', get_post_format() );

Ce qui vérifiera le format de la publication et chargera le fichier approprié. De cette façon, une publication au format galerie peut facilement avoir quelque chose comme:

do_shortcode('[gallery]')

déjà inséré. Les modèles sauront quand une galerie est affichée et afficheront automatiquement les images.

Est-ce ce que vous recherchez?

1
clark

Utilisez des formats de publication personnalisés. Ferait à peu près exactement ce que vous voulez!

http://codex.wordpress.org/Post_Formats

Désolé, j'ai oublié d'ajouter que ce serait une meilleure pratique à faire. Vous pouvez conserver les divs avec les classes de grille dans la boucle, mais utiliser ensuite get_template_part ('content', get_post_format ()); au sein de cette div.

Cela chargera le fichier de modèle 'content-video.php' si le format du message était une vidéo. Là-bas, les affaires sont normales avec le balisage et php.

Dans le 'content-video.php' ou le type de message que vous voulez, vous pouvez charger vos classes CSS comme d'habitude.

Voici quelques détails supplémentaires:

Dans le fichier functions.php:

add_theme_support ('post-formats', tableau ('vidéo', 'galerie'));

Ensuite, dans votre fichier index.php (celui avec la boucle), vous pouvez faire ceci:

Cela vous donnera le bon fichier de contenu, c'est-à-dire; content.php ou content-video.php, etc.

Ensuite, dans content-video.php, si vous affichez une vidéo youtube par exemple:

Dans cet esprit, vous auriez les fichiers suivants:

functions.php - vous en aurez besoin tôt ou tard pour ne pas nuire à sa création

content.php - cela aura le balisage spécifique au contenu d'un message. C'est le générique.

content-video.php - c’est là que vous placeriez du code différent de tout autre contenu. Ou en d'autres termes, spécifique à video.php

Le index.php plus ou moins juste met en place la boucle J'espère que cela aide!

0
dmarges