Insertion de code au milieu de la liste des posts en home /// CSS media queries (Créer un compte)

  • WordPress :5.8
  • Statut : non résolu
7 sujets de 1 à 7 (sur un total de 7)
  • Auteur
    Messages
  • #2409400
    scotlandyard
    Participant
    Initié WordPress
    6 contributions

    Bonjour,

    Ma configuration WP actuelle

    • Version de PHP/MySQL : 7.3.33
    • WordPress 6
    • Thème utilisé : (rowling, paddle, miyazaki, hueman). La question concerne tous les thèmes
    • Extensions en place : aucune pour le moment, site de test
    • Nom de l’hébergeur : swissrack
    • Adresse du site : http://www.webpratique.ch/wp (test), au final, le thème sera destiné à histoiredesinventions.com

     

    Bonjour,

    Je me présente pour commencer: Grégoire, 42 ans, de Suisse. Mon métier, c’est les ressources humaines. Je me défini comme un bricoleur de WordPress. Je sais faire plein de trucs certainement basique pour tous le monde ici, mais suis incapable de retenir une ligne de code. J’ai une base de données de bout de code, que je réutilise là ou j’en ai besoin. En gros, je sais à peu près lire un fichier et trouver ou je dois coller mon bout de code. Même chose pour le CSS. Je bricole et j’arrive toujours à ce que je veux. Mais pas cette fois.

    Mon projet: j’en ai marre de modifier les thèmes des autres, même si je suis un fan inconditionnel d’Anders Noren. Je souhaite partir d’une base de type underscores et construire mon thème de A à Z. Quelque chose d’assez épuré, pour un site d’histoire (dans le sens historique).

    Pour mon projet de thème, j’ai besoin de deux infos en particulier:

    1/pouvoir insérer un bout de code, n’importe lequel, entre deux posts à définir en homepage.

    2/ savoir comment gérer les médias queries dans la css de mon thème enfant

     

    Pour le 1/

    En image :

    div container
    class post1
    class post2
    class insérée (avec un widget, une sidebar, ce genre de chose)
    class post3

    class post10
    /div container

    En résumé: WordPress publie automatiquement les 10 derniers articles du site pour les présenter en page d’accueil. Mon bout de code ajoute une 11ème class qui sera située entre le 4ème et le 5ème article.  Dans cette class, j’appelle une sidebar (déjà créée et fonctionnelle si je la met ailleurs à un endroit « standard »).

    Cela fait des semaines que je fouille le web: j’ai une fois trouvé un article, pas conservé le lien… et je le retrouve plus, qui mentionnait un jQuery capable de faire ça, avec une histoire de DOM. Je me souviens nettement avoir essayé d’intégrer ça, en me limitant à vouloir voir apparaître le mot « test ». Cela n’a rien donné, sinon que j’ai tout fait planter ce qui a nécessité de réinstaller mon site de test WordPress. J’ai aussi testé le CSS (nth-child XY:before et after), j’ai cherché des extensions, des shortcodes, les includes, d’ajouter manuellement une class « post » dans la boucle, mais cela n’a évidemment rien donné de bon…

    Avez-vous un bout de code, qui me permet soit d’intégrer ma sidebar à l’emplacement voulu, ou alors d’appeler un fichier en include ?

     

    Pour le 2/

    Suivant le thème de base utilisé, la css de mon thème enfant n’est pas prise en charge. J’ajoute systématiquement le code dans functions qui « dequeue » et « enqueue » mon css.

    Lorsqu’il s’agit de modifier une class en particulier, située sous un media queries quelconque, que faire ?

    On copie toute la chaîne avec l’intégralité des queries et des valeurs existantes dans le thème parent, ou je peux me contenter d’ouvrir et fermer mon media query en particulier et corriger la seule valeur que je souhaite corriger ? Pour le moment, je n’arrive pas à grand chose de bon pour la partie responsive.

    Désolé pour ce long discours. Ne pouvant pas être d’une grande aide sur les forums, je tente toujours de me débrouiller tout seul pour ne pas être celui qui pique les infos sans jamais en redonner. Mais là, je sèche totalement, j’ai besoin de vous.

    Un immense merci par avance !

    Grégoire

    #2409427
    mathieu42
    Participant
    Maître WordPress
    1518 contributions

    vous avez ici 2 questions qui ne sont pas liées donc il vaut mieux se concentrer ici sur la 1re question par exemple et vous pouvez dés maintenant créer une nouvelle discussion pour demander votre 2e question.

    en ce qui concerne la 1re partie, il y a aussi une liste d’articles affichée sur les pages « archives » mais vous voulez seulement cet ajout sur la page d’accueil, c’est bien ça ?

     

    #2409449
    mathieu42
    Participant
    Maître WordPress
    1518 contributions

    j’ai regardé la base underscore et les articles de la page d’accueil sont gérés pas le fichier index.php. si l’organisation de votre thème est différente vous pouvez trouver quel fichier utiliser à l’aide de la documentation là :

    .https://developer.wordpress.org/themes/basics/template-hierarchy/

    dans ce fichier, vous modifiez la boucle en mettant ce code :

    			/* Start the Loop */
    			
    			$compteur = 0;
    			
    			while ( have_posts() ) :
    				
    				$compteur++;
    				the_post();
    				
    				do_action("hdi/boucle_principale/ajout_contenu", $compteur);
    				
    				/*
    				 * Include the Post-Type-specific template for the content.
    				 * If you want to override this in a child theme, then include a file
    				 * called content-___.php (where ___ is the Post Type name) and that will be used instead.
    				 */
    				get_template_part( 'template-parts/content', get_post_type() );
    
    			endwhile;

    et ensuite vous pouvez ajouter du contenu à cet endroit en vous accrochant à l’action comme cela :

    add_action("hdi/boucle_principale/ajout_contenu", function ($compteur) {
    	
    	
    	if (!is_home()) { // si ce n'est pas la page d'accueil
    		return;
    	}
    	
    	if (3 !== $compteur) { // si la boucle n'est pas actuellement à la 3e position
    		return;
    	}
    	
    	
    	?>
    		<div class="contenu_ajoute">
    			Bienvenue sur le site
    			<?php echo htmlspecialchars(get_option("blogname"));?>
    		</div>
    	<?php
    	
    	
    });

    #2409450
    scotlandyard
    Participant
    Initié WordPress
    6 contributions

    Excellent, merci ! Je vais tester ça rapidement ! L’ajout que je souhaite faire est pour l’index. Mais j’imagine que c’est le même système pour la page archive.

    merci pour l’aide précieuse !

    Grégoire

    #2409494
    scotlandyard
    Participant
    Initié WordPress
    6 contributions

    Bonsoir,

    Je tente actuellement d’installer ce code dans un thème « simple ». Je suis actuellement sur paddle. Le premier bout de code, j’ai facilement trouvé ou le mettre.

    C’est le deuxième que je ne trouve pas ou le caser.

    Je suppose que c’est dans le template-parts/content.php que je dois le mettre. Mais je ne trouve pas ou.

    <?php
    /**
     * Template part for displaying posts
     *
     * @link https://developer.wordpress.org/themes/basics/template-hierarchy/
     *
     * @package paddle
     */
    
    ?>
    <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
    
    	<?php
    	if ( ( is_single() || ( is_page() && ! is_front_page() ) ) && has_post_thumbnail() ) :
    		get_template_part( 'template-parts/header/featured-header', 'image' );
    
    	else :
    		if ( is_singular() ) {
    			the_title( '<h1 class="entry-title">', '</h1>' );
    		} else {
    			the_title( '<h2 class="entry-title heading-size-1"><a class="post-entry-link" href="' . esc_url( get_permalink() ) . '"  "rel="bookmark">', '</a></h2>' );
    		}
    
    		if ( 'post' === get_post_type() ) :
    			?>
    			<div class="entry-meta">
    				<small>
    				<?php
    				paddle_posted_by();
    				?>
    				</small>
    
    			<?php
    			// Display date link in the header if not in the footer.
    			if ( is_archive() || is_front_page() && 1 === get_theme_mod( 'hide_archive_meta' ) ) :
    				paddle_posted_on();
    			endif;
    			?>
    
    			</div><!-- .entry-meta -->
    			<?php
    		endif;    // End if post type.
    
    		do_action('paddle_after_post_title');
    
    		paddle_post_thumbnail();
    
    	endif;
    	?>
    
    	<?php do_action('paddle_before_entry_content'); ?>
    
    	<div class="entry-content">
    		<?php
    
    		if ( is_search() || ! is_singular() ) {
    			the_excerpt();
    		} else {
    			the_content(
    				sprintf(
    					wp_kses(
    						/* translators: %s: Name of current post. Only visible to screen readers */
    						__( 'Continue reading<span class="screen-reader-text"> "%s"</span>', 'paddle' ),
    						array(
    							'span' => array(
    								'class' => array(),
    							),
    						)
    					),
    					wp_kses_post( get_the_title() )
    				)
    			);
    		}
    
    		wp_link_pages(
    			array(
    				'before' => '<div class="page-links">' . esc_html__( 'Pages:', 'paddle' ),
    				'after'  => '</div>',
    			)
    		);
    		?>
    	</div><!-- .entry-content -->
    
    	<?php do_action('paddle_after_entry_content'); ?>
    
    	<div class="clearfix"></div>
    
    	<?php
    	if ( is_archive() || is_front_page() && 1 === get_theme_mod( 'hide_archive_meta' ) ) :
    				return '';
    		else :
    			?>
    	<footer class="entry-footer">
    			<?php paddle_entry_footer(); ?>
    	</footer><!-- .entry-footer -->
    	<?php endif; ?>
    </article><!-- #post-<?php the_ID(); ?> -->
    code

    Je cherche encore.

    #2409496
    mathieu42
    Participant
    Maître WordPress
    1518 contributions

    le code « add_action » va s’accrocher au « do_action » que vous avez mis dans le 1er fichier.

    donc le 2e code peut être n’importe où, dans le fichier functions.php du thème ou même dans une extension.

    #2409501
    scotlandyard
    Participant
    Initié WordPress
    6 contributions

    Je suis une pive et ça m’énerve.

    J’ai placé dans le fichier index le premier code. Il me semble que ça, c’est OK.

    J’ai ajouté dans functions le deuxième code tel quel. Résultat néant.
    Tout à l’heure, j’ai réussi à faire apparaitre sur le site le deuxième code, non interprété… et c’est tout. Maintenant, plus rien n’apparait, même pas un message d’erreur. Dans l’affichage du code source, néant aussi. Aucun « bienvenue sur le site » n’apparaît, même caché sous une div.

    Si seulement un plugin existait… Le PHP, c’est vraiment du chinois pour un gars qui bricole du CSS.

    Je suis reconnaissant pour l’aide.

    Dois-je corriger quelque chose, genre le « HDI », est-ce un chemin d’accès ?

    En ce moment, je suis en train de tester tous les emplacements possible et imaginable dans les fichiers qui gèrent l’affichage des posts en page d’accueil (home).

    Grégoire

    • Cette réponse a été modifiée le il y a 2 mois et 3 semaines par scotlandyard.
7 sujets de 1 à 7 (sur un total de 7)
  • Vous devez être connecté pour répondre à ce sujet.