Soporte » Guías – Resolución de problemas » problema con the_excerpt

  • Resuelto brayancardiet

    (@brayancardiet)


    buenas tardes estoy comenzando con esto de wordpress y estoy un poco pérdido, lo cierto es que necesito ayuda para solucionar un detalle de la funcion the_excerpt
    en la pagina de inicio me comenzo a mostrar toda la descripcion igual, luego de estar funcionando bien.

    muestro varios post en mi index y muestran una pequeña descripcion con the excerpt, ahora me muestra la descripcion del ultimo post que agrege, alguna solucion para eso? gracias de antemano

    La página con la que necesito ayuda: [accede para ver el enlace]

Viendo 15 respuestas - 16 de 30 (de 32 total)
  • brayancardiet

    (@brayancardiet)

    igual ya con esa respuesta creo poder solucionar muchas gracias, cualquier detalle que salga pregunto

    cybmeta

    (@cybmeta)

    Hay un error en el último mensaje que puse. Hay que cambiar esto:

    wp_rewset_postdata();

    Por:

    wp_reset_postdata()

    brayancardiet

    (@brayancardiet)

    perfecto gracias, aviso que tal va

    brayancardiet

    (@brayancardiet)

    holaa, logre hacer que mostrara cada texto con un while y no un foreach
    pero desde el endwhile;?> en adelante mata a todas mis etiquetas html y php
    dejo todo el codigo, espero puedan ayudarme con lo que estoy olvidando

    <hr>
    <section id="news_last" class="row">
    	<div id="news_content" class="col-xs-6">
    
        <?php while ( have_posts() ) : the_post(); ?>
    		<div class="row item">
    			<div class="col-xs-12">
    				<a href="<?php echo get_permalink($post->ID); ?>">
    					<h4><?php the_title(); ?></h4>
    				</a>
    				<div class="row info">
    					<div class="col-xs-12 head">
    						<?php 
    							$post_categories = wp_get_post_categories( $post->ID );
    							foreach($post_categories as $c):
    								$cat = get_category( $c );
    								$color = get_field('categoria_color', $cat);
    						?>
    								<a class="category-link pull-left" href="<?php echo get_category_link( $cat->term_id ); ?>">
    									<span class="etiqueta" style="background: <?php echo $color; ?>"><?php echo $cat->name; ?></span>
    								</a>
    							<?php 
    
    								break;
    							endforeach; 
    						?>
    
    						<?php 
    							$post_date = get_the_date( 'Y-m-d H:i:s', $post->ID );
    							$hace = new haceTanto($post_date,'h');
    						?>
    						<span class="time pull-left"><i class="fa fa-clock-o"></i> hace <?php echo $hace; ?></span>
    						<span class="share pull-left">
    							<ul class="nav nav-pills"> 
            						<li role="presentation"><a target="_blank" data-href="<?php echo get_permalink($post->ID); ?>" href="https://www.facebook.com/sharer/sharer.php?u=www.revistapolicial.pe/<?php echo get_permalink($post->ID); ?>"><i class="fa fa-facebook"></i></a></li>
    								<li role="presentation"><a target="_blank" href="https://twitter.com/intent/tweet?text=<?php echo get_the_title($post->ID); ?>&url=<?php echo get_permalink($post->ID); ?>"><i class="fa fa-twitter"></i></a></li>
            					</ul>
            					<div class="clearfix"></div>
    						</span>
    					</div>
    				</div>
    				<div class="info_news row">
    					<div class="col-xs-12 col-sm-12 col-md-6 col-lg-6">
    						<?php if (has_post_thumbnail()): ?>
    							<img src="<?php the_post_thumbnail_url( $post->ID, 'medium' ); ?>" class="img-responsive" alt="<?php echo get_the_title($post->ID); ?>">
    						<?php else: ?>
    							<img src="<?php echo get_template_directory_uri(); ?>/assets/image/post-especial.png" class="img-responsive" alt="<?php echo get_the_title($post->ID); ?>">
    						<?php endif ?>
    					</div>
    					<div class="col-xs-12 col-sm-12 col-md-6 col-lg-6">
    						<p>
    							<?php the_excerpt_max_charlength(160); ?>
    						</p>
    					</div>
    				</div>
    			</div>
    		</div>
    		<hr>
    	<?php
    	endwhile;
    	?>
    
    	</div>
    
    <!---------------------------------------------------------------------------------------------------(1865)-->
    	<div id="news_ultimas" class="col-xs-3 news_ult">
    		<div class="col-xs-12 news">
                <div class="content">
                    <div class="header">
                        <h4>Últimas Noticias</h4>
                    </div>
    	            <?php 
    			        $args = 
    			        	array(
    			        		'post_type' => 'post', 
    			        		'numberposts' => 4, 
    			        		'orderby' => 'date', 
    			        		'order' => 'DESC',
    			        		'post_status' => 'publish',
    			        		'tax_query' => array(
    								array(
    									'taxonomy' => 'news',
    									'field' => 'slug',
    									'terms' => 'ultimas-noticias'
    								)
    							),
    			        	);
    			        $posts = get_posts( $args );
    			        foreach ($posts as $post):
    			    ?>
    					<div class="info-item">
    						<a class="title" href="<?php echo get_permalink($post->ID); ?>">
    							<?php echo get_the_title($post->ID); ?>
    						</a>
    						<div class="meta">	
    							<?php 
    								$post_categories = wp_get_post_categories( $post->ID );
    								foreach($post_categories as $c):
    									$cat = get_category( $c );
    									$color = get_field('categoria_color', $cat);
    								?>
    								<a class="etiqueta pull-left" href="<?php echo get_category_link( $cat->term_id ); ?>" style="color: <?= $color?>">
    									<?php echo $cat->name; ?>
    								</a>
    								<?php 
    									break;
    									endforeach; 
    								?>
    								<?php 
    								 	$post_date = get_the_date( 'Y-m-d H:i:s', $post->ID );
    									$hace = new haceTanto($post_date,'h');
    									//$fecha2 = new DateTime($post_date);
    									//$hace = hace($fecha2);
    								?>
    								<center>
    									<span class="time"><i class="fa fa-clock-o"></i> hace <?php echo $hace; ?></span>
    								</center>
    								<span class="share pull-right">
    									<ul class="nav nav-pills"> 
    										<li role="presentation"><a target="_blank" data-href="<?php echo get_permalink($post->ID); ?>" href="https://www.facebook.com/sharer/sharer.php?u=www.revistapolicial.pe/<?php echo get_permalink($post->ID); ?>"><i class="fa fa-facebook"></i></a></li>
    										<li role="presentation"><a target="_blank" href="https://twitter.com/intent/tweet?text=<?php echo get_the_title($post->ID); ?>&url=<?php echo get_permalink($post->ID); ?>"><i class="fa fa-twitter"></i></a></li>
    									</ul>
    									<div class="clearfix"></div>
    								</span>		
    						</div>
    						<div class="img">
    							<a href="<?php echo get_permalink($post->ID); ?>">
    				     			<?php if (has_post_thumbnail()): ?>
    									<img src="<?php the_post_thumbnail_url( $post->ID, 'post-verde' ); ?>" class="img-responsive" alt="<?php echo get_the_title($post->ID); ?>">
    				     			<?php else: ?>
    									<img src="<?php echo get_template_directory_uri(); ?>/assets/image/post-verde.png" class="img-responsive" alt="<?php echo get_the_title($post->ID); ?>">
    				     			<?php endif ?>
    				     		</a>
    						</div>
    						<hr>
    					</div>
    				<?php endforeach; ?> 
            	</div>
            </div> 
    	</div-->
    		<?php
    
    	break;
    
    	?>
    <!--------------------------------------------------------------------------------------------(1988)-->
    	<div id="home-aside" class="col-xs-3 meta publicidad">
    		<?php
        if (is_page( 'prevencion' )) {
    		if ( is_active_sidebar( 'widget-aside-page-prevencion' ) ){
            	dynamic_sidebar( 'widget-aside-page-prevencion' );
    		}
    	}elseif (is_page( 'orientacion' )) {
    		if ( is_active_sidebar( 'widget-aside-page-prevencion' ) ){
            	dynamic_sidebar( 'widget-aside-page-prevencion' );
    		}
    	}else{
    		if ( is_active_sidebar( 'widget-aside-page-prevencion' ) ){
            	dynamic_sidebar( 'widget-aside-page-prevencion' );
    		}
       	}
    	?>
    	</div>
    </section>	        	
    
    brayancardiet

    (@brayancardiet)

    ahora lo que hare sera separar ese codigo en un modulo a ver si deja de matar todo el codigo sobrante (en caso de no saber cual endwhile hablo del que esta sobre el separador <!—–1865–>

    gracias de antemano

    cybmeta

    (@cybmeta)

    Da igual un while que un foreach; ese no es problema que tenías. Se te ha solucionado de casualidad 🙂 . Has cambiado el loop que hacías con un query propio (que hacías con get_posts()), por un loop del query principal y de casualidad tienes los mismos posts en ambos. En ese loop que haces ahora, WodPress se encarga de actualizar la global $post con la función the_post();, que era lo que te sugería hacer en el comentario anterior pero utilizando la función apropiada para los queries secundarios.

    Pero bueno, si lo tienes solucionado, no nos metamos ahí que igual te lío más.

    Voy a echarle un vistazo al código nuevo que has puesto, pero dame un ratillo.

    cybmeta

    (@cybmeta)

    Tienes varios break; por ahí que no deberías tener. ¿Por qué has puestos esos break? ¿Cuál es la intención?

    También veo un </div--> que parece que tendría que ser <div>.

    brayancardiet

    (@brayancardiet)

    el detalle de los break es intentando que termine el ciclo y no mate las etiquetas
    el div lo chequeo

    cybmeta

    (@cybmeta)

    El break tiene que ir dentro del loop que quieres terminar, no fuera.

    brayancardiet

    (@brayancardiet)

    ya saque los break; que puse extra y igual, sigue cortando el contenido que va despues del endwhile;

    brayancardiet

    (@brayancardiet)

    veo progresoo..!!!

    ya casi despues de ir probando volvi a tu solucion inicial y me ha ido mejor, solo que el corte de la informacion se da dentro de un post

    sera que puedes ver si ves algo fuera de lugar? ya creo que es el endforech; que hay que ubicarlo mejor

    y perdona la molestia

    -…………………………………………………………………-

    <section id="news_last" class="row">
    	<div id="news_content" class="col-xs-6">
    	<?php 
            $args = 
            	array(
            		'post_type' => 'post', 
            		'numberposts' => 2, 
            		'orderby' => 'date', 
            		'order' => 'DESC',
            		'post_status' => 'publish',
            		'category__not_in' => array( 7 ),
            	);
            $list_post = get_posts( $args );
            foreach ($list_post as $post):
    
        ?>
    		<div class="row item">
    			<div class="col-xs-12">
    				<a href="<?php echo get_permalink($post->ID); ?>">
    					<h4><?php echo get_the_title($post->ID); ?></h4>
    				</a>
    				<div class="row info">
    					<div class="col-xs-12 head">
    						<?php 
    							$post_categories = wp_get_post_categories( $post->ID );
    							foreach($post_categories as $c):
    								$cat = get_category( $c );
    								$color = get_field('categoria_color', $cat);
    						?>
    								<a class="category-link pull-left" href="<?php echo get_category_link( $cat->term_id ); ?>">
    									<span class="etiqueta" style="background: <?php echo $color; ?>"><?php echo $cat->name; ?></span>
    								</a>
    
    						<?php 
    								break;
    							endforeach; 
    						?>
    						<?php 
    							$post_date = get_the_date( 'Y-m-d H:i:s', $post->ID );
    							$hace = new haceTanto($post_date,'h');
    						?>
    						<span class="time pull-left"><i class="fa fa-clock-o"></i> hace <?php echo $hace; ?></span>
    						<span class="share pull-left">
    							<ul class="nav nav-pills"> 
            						<li role="presentation"><a target="_blank" data-href="<?php echo get_permalink($post->ID); ?>" href="https://www.facebook.com/sharer/sharer.php?u=www.revistapolicial.pe/<?php echo get_permalink($post->ID); ?>"><i class="fa fa-facebook"></i></a></li>
    								<li role="presentation"><a target="_blank" href="https://twitter.com/intent/tweet?text=<?php echo get_the_title($post->ID); ?>&url=<?php echo get_permalink($post->ID); ?>"><i class="fa fa-twitter"></i></a></li>
            					</ul>
            					<div class="clearfix"></div>
    						</span>
    					</div>
    				</div>
    				<div class="info_news row">
    					<div class="col-xs-12 col-sm-12 col-md-6 col-lg-6">
    						<?php if (has_post_thumbnail()): ?>
    							<img src="<?php the_post_thumbnail_url( $post->ID, 'medium' ); ?>" class="img-responsive" alt="<?php echo get_the_title($post->ID); ?>">
    						<?php else: ?>
    							<img src="<?php echo get_template_directory_uri(); ?>/assets/image/post-especial.png" class="img-responsive" alt="<?php echo get_the_title($post->ID); ?>">
    						<?php endif ?>
    					</div>
    					<div class="col-xs-12 col-sm-12 col-md-6 col-lg-6">
    						<p>
    							<?php
    								$list_post = get_posts( $args );
            						foreach ($list_post as $post):	
            							
            							the_excerpt_max_charlength(60);
            							setup_postdata( $post );
            						       							
            						endforeach;
    
        							?>
        							<?php
    							 
    							?>
    						</p>
    
    					</div>
    				</div>
    			</div>
    		</div>
    		<hr>
    	<?php endforeach;?>
    	</div>
    brayancardiet

    (@brayancardiet)

    por lo que veo mi problema es este endforeach; pero intento eliminarlo y se va todo mi php lo he intentado mover y obviamente se imprime en diferentes tamaños y maneras pero creo que si logro sacar este foreach del codigo solo se imprimiria lo necesario

    <p>
    							<?php
    								$list_post = get_posts( $args );
            						foreach ($list_post as $post):	
            							
            							the_excerpt_max_charlength(60);
            							setup_postdata( $post );
            						       							
            						endforeach;
    
        							?>
        							<?php
    brayancardiet

    (@brayancardiet)

    y que la primera descripcion pertenece a el ultimo post de los 4

    brayancardiet

    (@brayancardiet)

    si cambio the_excerpt_max_charlength(160) por the_excerpt($post->ID) toman su orden las descripciones de los post pero por el endforeach; se sigue inprimiendo varias veces por post

    brayancardiet

    (@brayancardiet)

    te amo wey jajajajaja ya solucione, estaba haciendo dos veces el proceso por eso tenia doble foreach.

    gracias por la solucion

    y perdona tanta molestia un saludo

Viendo 15 respuestas - 16 de 30 (de 32 total)
  • El debate ‘problema con the_excerpt’ está cerrado a nuevas respuestas.