Ayuda para crear un enlace php y wordpress

  • Autor Autor Ruiz86
  • Fecha de inicio Fecha de inicio
Ruiz86

Ruiz86

Eta
SEO
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
La web en cuestión: English Centre Emily |

Si os fijais en el slider, el titulo de cada uno y el boton de ver mas si tiene la url pero quiero además agregársela a los cuatro items de abajo por ejemplo a cada título de cada item y no lo consigo.

Códigos:
De los sliders:
HTML:
<?php if (have_posts()) : while (have_posts()) : the_post();

			global $post; ?>

				<div class="slide">

					<?php

					$width = 847;

					$height = 309;

					

					$titletext = get_the_title();

		

					$thumbnail = get_thumbnail($width,$height,'featured-image',$titletext,$titletext,false,'Featured');

					

					$arr[$i]['titletext'] = get_post_meta( $post->ID, 'Smalltitle', true ) ? get_post_meta( $post->ID, 'Smalltitle', true ) : truncate_title(20,false);

					$arr[$i]['description'] = get_post_meta( $post->ID, 'Smalldesc', true ) ? get_post_meta( $post->ID, 'Smalldesc', true ) : truncate_post(45,false);

					

					$thumb = $thumbnail["thumb"];

					print_thumbnail($thumb, $thumbnail["use_timthumb"], $titletext, $width, $height, 'featured-image'); ?>

					<span class="overlay"></span>

					<div class="description">

						<h2 class="featured-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>

						<p><?php truncate_post(350); ?></p>

						<a href="<?php the_permalink(); ?>" class="readmore"><?php esc_html_e('Leer más', 'Sky'); ?></a>

					</div> <!-- end .description -->

				</div> <!-- end .slide -->

			<?php $i++; endwhile; endif; wp_reset_query(); ?>


De los 4 items que hay bajo el slider:
HTML:
<div id="controllers" class="clearfix">

			<ul>

				<?php for ($i = 0; $i < $featured_num; $i++) { ?>

					<li<?php if ( $i == 0 ) echo ' class="active"'; ?>>

						<div class="controller">

							<h3><?php echo esc_html( $arr[$i]['titletext'] ); ?></h3>
							<p><?php echo esc_html( $arr[$i]['description'] ); ?></p>

						</div>	

					</li>

				<?php } ?>

			</ul>

			<div id="left-shadow"></div>

			<div id="right-shadow"></div>

		</div> <!-- end #controllers -->

Yo he intentando en el segundo código cambiar esta línea:
HTML:
<h3><?php echo esc_html( $arr[$i]['titletext'] ); ?></h3>
por esta:
HTML:
<a href="<?php the_permalink(); ?>"><h3><?php echo esc_html( $arr[$i]['titletext'] ); ?></h3></a>
Y entonces en cada título de los items de abajo logro una url pero no es la correcta, me aparece la misma en todos y ni siquiera corresponde a ninguno de ellos, es de otro post de otra categoría.

Espero su ayuda 😀

---------- Post agregado el 31-mar-2014 hora: 15:47 ----------

Sigo necesitando un poquito de ayuda please
 
Última edición:
Nadie puede ayudarme?
 
Nadie puede ayudarme?


Vamos a ver si te sirve.
Los items de abajo usan los datos del array "$arr", así que le añadiremos un dato.

Después de la linea
PHP:
$arr[$i]['description'] = get_post_meta( $post->ID, 'Smalldesc', true ) ? get_post_meta( $post->ID, 'Smalldesc', true ) : truncate_post(45,false);
Añadimos esta linea
PHP:
$arr[$i]['url'] = the_permalink();

En el código de lo items cambiamos la linea
PHP:
<h3><?php echo esc_html( $arr[$i]['titletext'] ); ?></h3>
por esta otra
PHP:
<a href="<?php echo esc_html( $arr[$i]['url'] ); ?>"><h3><?php echo esc_html( $arr[$i]['titletext'] ); ?></h3></a>

Creo que así te funcione.
 
Vamos a ver si te sirve.
Los items de abajo usan los datos del array "$arr", así que le añadiremos un dato.........

Muchas gracias Kobra por contestar, he añadido tal y como me has indicado aunque yo ya intenté algo similar y me ocurría lo mismo que sale ahora, siempre coje la misma URL, la de la portada.
Compruebalo ya que he dejado los cambios activos en la web: English Centre Emily |
Además me sale la url fea xD justo encima del slider.

Quedo a la espera de tu contestación 😛
 
Última edición:
Muchas gracias Kobra por contestar, he añadido tal y como me has indicado aunque yo ya intenté algo similar y me ocurría lo mismo que sale ahora, siempre coje la misma URL, la de la portada.
Compruebalo ya que he dejado los cambios activos en la web: English Centre Emily |
Además me sale la url fea xD justo encima del slider.

Quedo a la espera de tu contestación 😛



Prueba a modificar las lineas que te dije por estas otras:
PHP:
$arr[$i]['url'] = get_permalink($post->ID);
PHP:
<h3><a href="<?php echo esc_html( $arr[$i]['url'] ); ?>"><?php echo esc_html( $arr[$i]['titletext'] ); ?></a></h3>


Y discúlpame si cometo fallos, no soy profesional.
 
Muy buena Kobra17 ahora si aparece el enlace pero no ejecuta la acción de ir al post, no tienes que disculparte en absoluto, demasiado es que te brindes a ayudar desinteresadamente y solo por ello ya es de agradecer.

Gracias de nuevo, está actualizada la web por si quieres comprobarla y comentarme porque no abre nuevo enlace.

Prueba a modificar las lineas que te dije por estas otras:
PHP:
$arr[$i]['url'] = get_permalink($post->ID);
PHP:
<h3><a rel="nofollow" href="<?php echo esc_html( $arr[$i]['url'] ); ?>"><?php echo esc_html( $arr[$i]['titletext'] ); ?></a></h3>


Y discúlpame si cometo fallos, no soy profesional.
 
Última edición:
El problema debe se que creas el $arr dentro del ciclo while, por lo tanto su alcance está dentro de ese ciclo. Cuando sales del ciclo, el $arr se debería desaparecer porque no es una variable global. Al terminar el ciclo limpias todo the_post() con el reset_query por lo que en el arroyo solo queda la última consulta.

En todo caso, asegúrate que $arr sea global (no se ve eso en tu codigo).

Sent from my Galaxy Nexus using Tapatalk
 
El problema debe se que creas el $arr dentro del ciclo while, por lo tanto su alcance está dentro de ese ciclo. Cuando sales del ciclo, el $arr se debería desaparecer porque no es una variable global. Al terminar el ciclo limpias todo the_post() con el reset_query por lo que en el arroyo solo queda la última consulta.

En todo caso, asegúrate que $arr sea global (no se ve eso en tu codigo).

Sent from my Galaxy Nexus using Tapatalk

Definiendo la variable $arr como global se carga la web y no aparece el slider.

Aquí he dejado el código completo del php en cuestión:
PHP:
 featured.php - Pastebin.com[/url]

Sigo esperando ayuda :p
 
Atrás
Arriba