Imagen en el titulo de un post/página?
Inicio › Foros › WordPress › Themes y Diseño › Imagen en el titulo de un post/página?
Este debate contiene 12 respuestas, tiene 4 mensajes y lo actualizó Pedro Raul hace 7 años, 11 meses.
- AutorPublicaciones
- 20 de marzo de 2011 a las 02:04 #20690
Anónimo<p>Es posible insertar una imagen en el titulo de un post?</p>
<p>Son imagenes pequeñas, y me gustaría se vieran exactamente a la derecha de los títulos de las páginas.</p>
<p>NO siempre es la misma imagen. ¿Hay algun modo?
</p> - 20 de marzo de 2011 a las 13:33 #50610
Solo veo una forma de hacerlo y es usando los campos personalizados.
A dicho campo le puedes llamar por ejemplo “thumb”.
El siguiente paso es añadir el siguiente código allí donde quieras que aparezca la imagen:
He intentado poner el código pero no hay forma de que salga bien. Puedes mirarlo en el codex de WordPress:
http://codex.wordpress.org/Function_Reference/get_post_meta (sección Simple Loop Example). Hay justo un ejemplo para colocar una imagen.
Después, cuando hagas una nueva entrada, basta con que indiques la URL de la imagen. La primera vez deberás ir a campos personalizados, clic en “nuevo”, introducir el nombre del campo y poner la URL de la imagen. Después, el nuevo campo ya te saldrá en el desplegable y solo deberás introducir la URL.
- 20 de marzo de 2011 a las 16:11 #50612
Campos personalizados o metaboxes, creo que sería la opción lógica y posible para hacerlo siempre y cuando las imágenes son diferentes entre cada post, y si quieres que sea una imagen según la categoría donde está publicada creo que sería nada más con un if(is_category ó if(in_category; y si es una imagen para todos los post, sol bastaría con insertar el código de la imagen al inicio el código que imprime el título.
- 20 de marzo de 2011 a las 18:18 #50618
¿cúal es el criterio de la inserción de la imagen?
- 20 de marzo de 2011 a las 18:53 #50621
AnónimoPues los tiros van por ahi, pero yo seré muy torpe o mi theme es muy complejo, pero no soy capaz de hacerlo. No me hace ni caso.
En mi caso es para un blog sobre hoteles, y quiero que aparezcan las estrellas al lado del nombre del hotel. Entonces CREO:
1º Creo un campo personalizado llamado ESTRELLAS-HOTEL (y ahi debería ir un código con los “if” que aún no sé como se escribe donde según la categoría de la página pueda mostrar una imagen u otra de las 5 disponibles)
2º Debo añadir un código en la página “simple.php” después del:
PHP1<h1 class=”title”><a>” rel=”bookmark” title=”<?php the_title(); ?>”><?php the_title(); ?></a>¿Es ahí el sitio?¿Esos son los dos únicos pasos? He probado con diferentes códigos pero no soy capaz de que salga nada al lado del title
- 20 de marzo de 2011 a las 19:43 #50624
dos caminos:
1. creas 5 imágenes , cada una con el numero de estrellas correspondientes, en el campo personalizado, solo indicas que numero de estrellas, ejemplo: 3
2. solo una imagen de una estrella, en el campo personalizado ira el número para usarlo en el loop que imprimirá las estrellas
aquí como puedes usar los campos personalizados:
http://www.wordpresslatino.net/tutoriales/como-usar-los-campos-personalizados
puedes leer ademas. (busca en el google)
php loop
- 20 de marzo de 2011 a las 19:57 #50625
AnónimoPues sigue sin aparecer nada, quizás mi theme es demasiado complejo y no pongo los códigos bien o en el sitio correcto, porque yo quiero que aparezca EN EL TITULO y eso tampoco lo explican en casi ningun sitio.
🙁
- 20 de marzo de 2011 a las 20:38 #50629
localiza desde donde se imprime el titulo, lee el código
- 20 de marzo de 2011 a las 20:41 #50630
AnónimoHe llegado a la conclusión que el código debe ir por aqui…
PHP1<?php the_title( $before, $after, $echo ); ?>Debería ser en el $after, pero $after solo acepta textos, no acepta la función que debo incrustrar:
PHP1<?php echo get_post_meta($post->ID, ‘hotel1’, true); ?> - 20 de marzo de 2011 a las 20:43 #50631
si lo pones asi
PHP1< ?php echo get_post_meta($post- >ID, ‘hotel1’, true); ? >< ?php the_title( $before, $after, $echo ); ? > - 20 de marzo de 2011 a las 21:57 #50632
AnónimoAsí no consigo la imagen dentro del title, aunque por ahora he recurrido a algo parecido.
Me parece que ya lo doy por imposible. - 21 de marzo de 2011 a las 00:13 #50639
Después de trabajar varios themes utilizando custom fields, me he vuelto un poco experto al respecto (aunque recién acabo empezar a utilizar metaboxes).
Los custom fields pueden crearse desde el functions.php ó desde la creación de entradas, asignándoles las key que deseemos, de esta manera podremos crear en tu caso le llamaremos “hotel”, y en valor como dijo Pedro, sólo tienes que agregar los números del 1 al 5 según sea el caso, donde 1 será una imagen con una estrella, 2 => 2 estrellas, 3 => tres estrellas, etc…
Crea las imágenes, cuyo nombre serán 1.jpg, 2.jpg, 3.jpg, 4.jpg y 5.jpg; los formatos puden ser gif, png, lo que desees, pero todas deben tener el mismo formato.
Para implementar el custom field en el theme tienes que agregar el siguiente código después del inicio del loop:
PHP12<br /><?php $hotel=get_post_meta($post->ID, ‘hotel’, true); ?><br />Quedando el loop de esta forma:
PHP1234<br /><?php if (have_posts()) : ?></p><p> <?php while (have_posts()) : the_post(); ?></p><p> <?php $hotel=get_post_meta($post->ID, ‘hotel’, true); ?><br />Eso dará inicio al custom field dentro del post, y ahora nos toca imprimir el valor del custom field.
La impresión de un custom field se realiza co el siguiente código:
PHP123<br /><?php echo $hotel; ?></p><p>//Lo cual imprimirá el valor que hayas agregado; por ejemplo si has agregado 3, se imprimirá 3.<br />Ahora modifiquemos el título de esta forma:
Un título normal:
PHP1234<br /><h2>[a href=”<?php the_permalink(); ?>” title=”<?php the_title(); ?>” rel=”bookmark”><br /><?php the_title(); ?><br /></h2><br />Implementando nuestra imagen:
PHP12345678910<br /><?php if($hotel !== ”) { ?> //aqui buscamos si el custom field hotel tiene algún valor<br /><div class=”image-hotel”>//un contenedor por si querramos dar formato a la imagen<br />[img src=”<?php bloginfo(‘template_url’); ?>/images/<?php echo $hotel; ?>.jpg” alt=”<?php echo $hotel; ?> estrellas” /> //aqui insertamos la imagen<br /></div>//cerramos el contenedor para formato de imagen.<br /><?php } else { } ?> Aqui indicamos que si el campo no tiene ningun valor no inserte nada.<br />//Luego continuamos con el formato original del título<br /><h2>[a href=”<?php the_permalink(); ?>” title=”<?php the_title(); ?>” rel=”bookmark”><br /><?php the_title(); ?><br /></h2><br />Ahora si todas las entradas serán de hoteles y a cada una de ellas le vas a asignar estrellas, ya no sería necesario el if, quedando de la siguiente manera:
PHP12345678<br /><div class=”image-hotel”>//un contenedor por si querramos dar formato a la imagen<br />[img src=”<?php bloginfo(‘template_url’); ?>/images/<?php echo $hotel; ?>.jpg” alt=”<?php echo $hotel; ?> estrellas” /> //aqui insertamos la imagen<br /></div>//cerramos el contenedor para formato de imagen.<br />//Luego continuamos con el formato original del título<br /><h2>[a href=”<?php the_permalink(); ?>” title=”<?php the_title(); ?>” rel=”bookmark”><br /><?php the_title(); ?><br /></h2><br />Si tienes alguna duda, no dudes en preguntar.
PD. El uso de las metaboxes es parecido, pero creo que es mucho más limpia en cuanto a integrar el metabox en el theme.
Por la modificación del código insertado, he modificado las etiquetas <img y <a por: [img y [a
- 22 de marzo de 2011 a las 16:37 #50672
[quote]Así no consigo la imagen dentro del title, [/quote]
hummm.
lo quieres así, (* igual a estrella)
Hotel libertador ***** del cuzco (¿aquí las estrellas están dentro del título?)
***** Hotel Libertador del cuzco (¿aquí las estrellas esta antes del título?)
<h1>***** Hotel Librtador del cuzco </h1> (¿lo que esta dentro de esto, ¿es el título?)explicate un poco mas.
una cosita más, Fliberty, haz que funcionen sus neuronas, no se lo pongas de esa manera, cosa que así aprende más.
- AutorPublicaciones
El foro ‘Themes y Diseño’ está cerrado y no se permiten nuevos debates ni respuestas.