[Résolu] Modification du code avoir des posts similaires vraiment aléatoires (Créer un compte)

  • Statut : non résolu
15 sujets de 1 à 15 (sur un total de 30)
  • Auteur
    Messages
  • #544503
    petitecirce
    Membre
    Chevalier WordPress
    168 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : 4.01
    – Version de PHP/MySQL : 5
    – Thème utilisé : Thème enfant Divi
    – Extensions en place : Akismet, All in one security, MailPoet Newsletters, Popups WordPress, WordPress SEO, WP-Polls, WP eStore, WP PDF Stamper, Monarch Setting
    – Nom de l’hebergeur : ovh
    – Adresse du site : http://www.chimio-pratique.com

    Problème(s) rencontré(s) :

    Bonjour à tous,

    Pour avoir des articles similaires à la fin des posts, j’ai intégré ce code au fichier single.php

    <div class="relatedposts">
        <h3>Related posts</h3>
        <?php
            $orig_post = $post;
            global $post;
            $tags = wp_get_post_tags($post->ID);
     
            if ($tags) {
                $tag_ids = array();
            foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
                $args=array(
                    ‘tag__in’ => $tag_ids,
                    ‘post__not_in’ => array($post->ID),
                    ‘posts_per_page’=>4, // Number of related posts to display.
                    ‘caller_get_posts’=>1
                );
     
            $my_query = new wp_query( $args );
     
            while( $my_query->have_posts() ) {
                $my_query->the_post();
            ?>
     
            <div class="relatedthumb">
                <a rel="external" href="<? the_permalink()?>“><?php the_post_thumbnail(array(150,100)); ?><br />
                <?php the_title(); ?>
                </a>
            </div>
     
            <?php }
            }
            $post = $orig_post;
            wp_reset_query();
            ?>
        </div>

    Cela m’évite d’utiliser un plugin car j’en ai déjà bcp.
    Or, en utilisant ce code, ce sont tjs les mêmes posts qui reviennent (les derniers publiés par mot-clés manifestement).

    Quelqu’un saurait comment les rendre vraiment aléatoires ?

    En vous remerciant par avance de vos réponses.

    Bon week end

    #984104
    Li-An
    Modérateur
    Maître WordPress
    24661 contributions

    Vous avez bien fait un reset query après l’affichage du billet ?

    #984105
    petitecirce
    Membre
    Chevalier WordPress
    168 contributions

    heu…
    Pardon, mais je ne comprends pas.
    Il y a un reset query à la fin du code inséré :

    “wp_reset_query();”

    Je devrais en mettre un autre ?

    #984106
    Li-An
    Modérateur
    Maître WordPress
    24661 contributions

    Ben oui, avant de lancer votre nouvelle boucle, non ?

    #984107
    petitecirce
    Membre
    Chevalier WordPress
    168 contributions

    OK, il faut que je rajoute un nouvel

    wp_reset_query();

    A la fin de single.php ?

    #984108
    Li-An
    Modérateur
    Maître WordPress
    24661 contributions

    Non, à la fin de votre boucle sur le contenu du billet.
    La boucle devrait avoir cette tête:

    
    …blablabla…

    Il faut le caser après

    #984109
    petitecirce
    Membre
    Chevalier WordPress
    168 contributions

    OK, merci beaucoup de votre aide.

    J’essaie et je reviens dire le résultat

    #984110
    petitecirce
    Membre
    Chevalier WordPress
    168 contributions

    Je viens de mettre le wp_reset_query () ; après (je n’ai pas trouvé ).

    Mais ça n’a rien changé. Les “posts similaires” proposés à la fin des articles sont toujours les mêmes.

    Voici le code du fichier single.php

    
    
    <div id="main-content">
    	<div class="container">
    		<div id="content-area" class="clearfix">
    			<div id="left-area">
    			
    				<?php if (et_get_option('divi_integration_single_top')  ” && et_get_option(‘divi_integrate_singletop_enable’) == ‘on’) echo(et_get_option(‘divi_integration_single_top’)); ?>
    
    				<article id="post-” >
    					<h1></h1>
    
    				<?php
    					if ( ! post_password_required() ) :
    
    						et_divi_post_meta();
    
    						$thumb = '';
    
    						$width = (int) apply_filters( 'et_pb_index_blog_image_width', 1080 );
    
    						$height = (int) apply_filters( 'et_pb_index_blog_image_height', 675 );
    						$classtext = 'et_featured_image';
    						$titletext = get_the_title();
    						$thumbnail = get_thumbnail( $width, $height, $classtext, $titletext, $titletext, false, 'Blogimage' );
    						$thumb = $thumbnail["thumb"];
    
    						$post_format = get_post_format();
    
    						if ( 'video' === $post_format && false !== ( $first_video = et_get_first_video() ) ) {
    							printf(
    								'<div class="et_main_video_container">
    									%1$s
    								</div>‘,
    								$first_video
    							);
    						} else if ( ! in_array( $post_format, array( ‘gallery’, ‘link’, ‘quote’ ) ) && ‘on’ === et_get_option( ‘divi_thumbnails’, ‘on’ ) && ” !== $thumb ) {
    							print_thumbnail( $thumb, $thumbnail[“use_timthumb”], $titletext, $width, $height );
    						} else if ( ‘gallery’ === $post_format ) {
    							et_gallery_images();
    						}
    					?>
    
    					<?php
    						$text_color_class = et_divi_get_post_text_color();
    
    						$inline_style = et_divi_get_post_bg_inline_style();
    
    						switch ( $post_format ) {
    							case 'audio' :
    								printf(
    									'<div>
    										%3$s
    									</div>‘,
    									esc_attr( $text_color_class ),
    									$inline_style,
    									et_pb_get_audio_player()
    								);
    
    								break;
    							case ‘quote’ :
    								printf(
    									‘<div>
    										%1$s
    									</div> <!-- .et_quote_content -->‘,
    									et_get_blockquote_in_content(),
    									esc_attr( $text_color_class ),
    									$inline_style
    								);
    
    								break;
    							case ‘link’ :
    								printf(
    									‘<div>
    										<a href="%1$s" class="et_link_main_url">%2$s</a>
    									</div> <!-- .et_link_content -->‘,
    									esc_url( et_get_link_url() ),
    									esc_html( et_get_link_url() ),
    									esc_attr( $text_color_class ),
    									$inline_style
    								);
    
    								break;
    						}
    
    					endif;
    				?>
    
    
    					<div class="entry-content">
    					 ‘<div class="page-links">‘ . __( ‘Pages:’, ‘Divi’ ), ‘after’ => ‘</div>‘ ) );
    					?>
    					</div> <!-- .entry-content -->
    
    					<?php
    					if ( et_get_option('divi_468_enable') == 'on' ){
    						echo '<div class="et-single-post-ad">‘;
    						if ( et_get_option(‘divi_468_adsense’)  ” ) echo( et_get_option(‘divi_468_adsense’) );
    						else { ?>
    							<a href="”><img src="” alt=”468 ad” class=”foursixeight” /></a>
    				<?php 	}
    						echo '</div> <!-- .et-single-post-ad -->‘;
    					}
    				?>
    
    <div class="relatedposts">
    
        <h3> Poursuivez votre lecture car… vous aimerez sans doute aussi : </h3>
        ID);
     
            if ($tags) {
                $tag_ids = array();
            foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
                $args=array(
                    ‘tag__in’ => $tag_ids,
                    ‘post__not_in’ => array($post->ID),
                    ‘posts_per_page’=>5, // Number of related posts to display.
                    ‘caller_get_posts’=>1
                );
     
            $my_query = new wp_query( $args );
     
            while( $my_query->have_posts() ) {
                $my_query->the_post();
            ?>
     
            <div class="relatedthumb">
                <a rel="external" href="”><br />
                <li> 
                </a>
            </div>
     
            
        </div>
    
    					
    				</article> <!-- .et_pb_post -->
    
    		
    
    
    				<?php if (et_get_option('divi_integration_single_bottom')  ” && et_get_option(‘divi_integrate_singlebottom_enable’) == ‘on’) echo(et_get_option(‘divi_integration_single_bottom’)); ?>
    			
    wp_reset_query();
    	</div> <!-- #left-area -->
    
    			
    		</div> <!-- #content-area -->
    	</div> <!-- .container -->
    </div> <!-- #main-content -->

    #984111
    Li-An
    Modérateur
    Maître WordPress
    24661 contributions

    Je me doutais que reset query ne le ferai pas – puisque ça fonctionne sur les query mais je ne connaissais pas cf. http://codex.wordpress.org/fr:La_Boucle

    #984112
    petitecirce
    Membre
    Chevalier WordPress
    168 contributions

    Je viens de remplacer le wp_reset_query () par
    Mais c’est tjs la même chose, les mêmes posts similaires apparaissent.

    C’est embêtant ce truc !

    #984113
    Li-An
    Modérateur
    Maître WordPress
    24661 contributions

    Vous avez testé toutes les solutions proposées par la page en question sur la gestion de multiboucles ?

    Essayez avec new Query cf. http://www.geekpress.fr/wordpress/guide/requetes-wp-query-786/

    J’ai regardé sur un thème qui affiche des billets relatifs et ça fonctionne comme ça. D’ailleurs je vous conseille de jeter un oeil sur un thème de ce genre. Il suffira ensuite de remplacer l’appel par un random quelconque.

    #984114
    petitecirce
    Membre
    Chevalier WordPress
    168 contributions

    Bon, j’ai essayé différents trucs présentés sur les pages et ça ne marche pas.

    Peut-être que j’ai mal fait qqc. Je réessaie les propositions des deux pages que vous donnez demain, pour avancer un peu plus.

    Merci de votre aide et ressources en tout cas. La solution n’est pas loin. Enfin j’espère.

    #984115
    Li-An
    Modérateur
    Maître WordPress
    24661 contributions

    Vous devriez trouver des solutions puisque les thèmes qui proposent des billets relatifs sont légions.

    #984116
    petitecirce
    Membre
    Chevalier WordPress
    168 contributions

    Oui… mais bcp utilisent des plugins…

    Mais c’est sûr que je vais trouver. Je viendrais poster la réponse.

    Merci de votre aide précieuse.

    #984117
    Li-An
    Modérateur
    Maître WordPress
    24661 contributions

    Le thème Hueman gère les billets relatifs.

15 sujets de 1 à 15 (sur un total de 30)
  • Vous devez être connecté pour répondre à ce sujet.