Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

home.php o index.php... Esa es la cuestión

Estas en el tema de home.php o index.php... Esa es la cuestión en el foro de WordPress en Foros del Web. Hola foriatras... Ahora mismo estaba refrescando el asunto de la jerarquía en los archivos de un theme de wordpress y he llegado a la siguiente ...
  #1 (permalink)  
Antiguo 21/11/2011, 11:49
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 19 años, 4 meses
Puntos: 638
home.php o index.php... Esa es la cuestión

Hola foriatras... Ahora mismo estaba refrescando el asunto de la jerarquía en los archivos de un theme de wordpress y he llegado a la siguiente conclusión:

Según muestra esta imagen, al entrar un usuario a un sitio hecho con Wordpress, se hará un request buscando el archivo front-page.php, de no existir, seguirá hasta encontrar home.php, si falla, entonces cargará index.php.

Por otro lado, si se hace una búsqueda ( Ej: blog.misitio.com/?s=lorem ), cargará search.php, que de no encontrarse, entonces el archivo a cargar vuelve a ser index.php.

En cambio, si se hace una búsqueda vacía ( Ej: blog.misitio.com/?s= ) entonces cargará index.php, lo he comprobado en mi propio blog.

Ahora bien, si hago un theme donde cree un archivo llamado home.php (Twenty Ten no lo trae) donde cargue el front de mi sitio, puedo, en teoría, hacer de index.php un archivo donde muestre un mensaje para quien llegue luego de hacer una búsqueda vacía, o poner un formulario de búsqueda avanzada o algo así.

Tendría que tener cuidado de no dejar ningún archivo suelto, osea, taxonomy, category, author, tag, date, archive, attachment, single y page, de esa manera solo quedará index.php para las búsquedas vacías. De echo, hace unos días intenté validar eso, que si por $_GET llegaba la variable s vacía se dirigiera a blog.misitio.com/advance-search, usando la función wp_redirect(), pero me dio un error, o tal vez lo estaba haciendo mal, pero a lo mejor se deba a esto, tengo que retomar la idea a ver....

En fin, ¿creen que es muy desacertado lo que planteo?

Gracias por leerme

EDITO: En el título debió decir home.php... no homa.php :S
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose

Última edición por Nekko; 21/11/2011 a las 13:14
  #2 (permalink)  
Antiguo 21/11/2011, 13:19
Avatar de Nekko
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Buenos Aires
Mensajes: 3.141
Antigüedad: 16 años, 8 meses
Puntos: 656
Respuesta: home.php o index.php... Esa es la cuestión

Roger, no te entendí la última parte, sobre validar las consultas vacías. Si en un theme utilizara home.php, igualmente dejaría armado un index.php con la maquetación y el código adecuado para mostrar un listado de lo que sea (tags, author posts, category...) por si acaso llego a olvidarme de una de las tantas alternativas.

Para búsquedas siempre tenés la opción de utilizar search.php y concentrar ahí todos los problemas que te puedan surgir con búsquedas...

Igual estoy segura de que no entendí del todo lo que planteás... ¿me repite la pregunta?
__________________
Taller para crear themes wordpress desde cero | Presupuestos para trabajos particulares vía MP
  #3 (permalink)  
Antiguo 21/11/2011, 18:06
Avatar de zanguanga
Moderadora
 
Fecha de Ingreso: julio-2009
Ubicación: España
Mensajes: 1.686
Antigüedad: 15 años, 5 meses
Puntos: 429
Respuesta: home.php o index.php... Esa es la cuestión

Hola,

yo creo que pasa algo raro con las búsquedas en tu blog, no sé si será a causa de algún plugin u otra función del theme, pero probando lo que decías se me ha ocurrido probar esta búsqueda y me devuelve dos resultados, el primero correcto, el segundo es un misterio, pues muestra un post que no contiene el término buscado.

O sea, no solo no te puedo ayudar, sino que te planteo un nuevo problema
__________________
Mi blog personal | Mi G+
  #4 (permalink)  
Antiguo 22/11/2011, 08:16
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 19 años, 4 meses
Puntos: 638
Respuesta: home.php o index.php... Esa es la cuestión

Cita:
Iniciado por Nekko Ver Mensaje
Roger, no te entendí la última parte, sobre validar las consultas vacías. Si en un theme utilizara home.php, igualmente dejaría armado un index.php con la maquetación y el código adecuado para mostrar un listado de lo que sea (tags, author posts, category...) por si acaso llego a olvidarme de una de las tantas alternativas.

Para búsquedas siempre tenés la opción de utilizar search.php y concentrar ahí todos los problemas que te puedan surgir con búsquedas...

Igual estoy segura de que no entendí del todo lo que planteás... ¿me repite la pregunta?
A ver... si usas Twenty Ten, por ejemplo, y envías el formulario de búsquedas vacío, /?s= entonces irás a parar a la portada del sitio.

Cuando dije de validar las búsquedas, lo que quería lograr era que si eso pasaba, que el usuario en lugar de ir a parar al home, fuera a otra página donde se mostrara un formulario un poco más avanzado, con otros criterios de búsqueda. Todo esto que digo me pasó con un proyecto que tengo en localhost, lo que lo dejé porque en el punto que estoy eso no es prioridad, tal vez en una segunda fase del proyecto implemente esto de las búsquedas avanzadas, pero me saltó la duda con este asunto de si la variable s llega vacía...

Cuando escribí el post, no había terminado de leer el artículo, pero luego me di cuenta que hay un ejemplo donde explican cómo alterar la jerarquía en los archivos. Luego pensé que tal vez creando un archivo llamado search-advance.php podría ponerlo en un punto jerárquico entre search.php e index.php.

No sé si ahora me entiendes mejor

Cita:
Iniciado por zanguanga Ver Mensaje
Hola,

yo creo que pasa algo raro con las búsquedas en tu blog, no sé si será a causa de algún plugin u otra función del theme, pero probando lo que decías se me ha ocurrido probar esta búsqueda y me devuelve dos resultados, el primero correcto, el segundo es un misterio, pues muestra un post que no contiene el término buscado.

O sea, no solo no te puedo ayudar, sino que te planteo un nuevo problema
Jejeeeejjeje... En casa del herrero cuchillo de palo... Llevo mucho tiempo enfrascado en otras cosas, y he dejado mi Blog algo empolvado , hace mucho que estoy por hacerme un nuevo theme, pero no he podido, éste que tengo ahora es una adaptación de Chaos Theory, pero quiero hacerme uno por mi...

Y señoritas, permítanme dejarles saber algo... En sus sitios igual pasa lo mismo, si hacen una búsqueda vacía, irán a parar a la portada de sus bellos Blogs

http://www.zanguanga.com/?s=
http://www.summarg.com/?s=

__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #5 (permalink)  
Antiguo 22/11/2011, 12:23
Avatar de Nekko
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Buenos Aires
Mensajes: 3.141
Antigüedad: 16 años, 8 meses
Puntos: 656
Respuesta: home.php o index.php... Esa es la cuestión

Jaja ahora entendí! En summarg hice el index.php y no tengo definidas las consultas dentro de WP porque uso CSE y generé un archivo diferente para ello...

Sin embargo, revisé otros proyectos en donde si incluí el archivo search.php y descubro que metiendo la variable vacía me lleva al home, sin siquiera pasarse por search! Que cosa extraña!

Cuando decís que probaste con wp_redirect, hiciste algo tipo esto?:

Código PHP:
Ver original
  1. <?php wp_redirect( 'http://www.sitio.com/s=', 404 ); exit; ?>
__________________
Taller para crear themes wordpress desde cero | Presupuestos para trabajos particulares vía MP
  #6 (permalink)  
Antiguo 22/11/2011, 12:59
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 19 años, 4 meses
Puntos: 638
Respuesta: home.php o index.php... Esa es la cuestión

Yep... pero con 301, ahora no recuerdo bien el código que usé, pero me daba un error del tipo:
Cita:
Las cabeceras han sido ya enviadas por no-se-que-archivo.php
Tengo que retomar la idea a ver que resulta...

Saludines
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #7 (permalink)  
Antiguo 22/11/2011, 19:36
Avatar de zanguanga
Moderadora
 
Fecha de Ingreso: julio-2009
Ubicación: España
Mensajes: 1.686
Antigüedad: 15 años, 5 meses
Puntos: 429
Respuesta: home.php o index.php... Esa es la cuestión

Cita:
Jejeeeejjeje... En casa del herrero cuchillo de palo... Llevo mucho tiempo enfrascado en otras cosas, y he dejado mi Blog algo empolvado , hace mucho que estoy por hacerme un nuevo theme, pero no he podido, éste que tengo ahora es una adaptación de Chaos Theory, pero quiero hacerme uno por mi...

Y señoritas, permítanme dejarles saber algo... En sus sitios igual pasa lo mismo, si hacen una búsqueda vacía, irán a parar a la portada de sus bellos Blogs

http://www.zanguanga.com/?s=
http://www.summarg.com/?s=
Oh sí, mi blog personal también tiene telarañas, jajaja. Lo que no tiene es un home.php, así que efectivamente va al index. Aunque no me molesta eso lo más mínimo, y acabo de darme cuenta que por no tener no tengo ni buscador, jajaja (minimalista que es una)

He estado mirando en otros blogs donde sí está el buscador de WP y en todos pasa lo mismo. Aunque la verdad lo uso poco, generalmente meto el buscador de Google.

Saludos!
__________________
Mi blog personal | Mi G+
  #8 (permalink)  
Antiguo 23/11/2011, 07:39
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 19 años, 4 meses
Puntos: 638
Respuesta: home.php o index.php... Esa es la cuestión

Lo que pasa, y de eso me he dado cuenta a partir de este debate, es que si tienes bien estructurado tu theme, osea, con todos los archivos que debería llevar, por ejemplo taxonomy-mitaxonomia.php y cosas así, entonces será menor el tiempo de respuesta del servidor a la hora de que se realice una petición.

Tomando en cuenta el ejemplo que pasé anteriormente, es posible optimizar los sitios mucho más

En cuanto le meta mano al asunto y encuentre alguna solución, o no, estaré posteando por aquí...

__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #9 (permalink)  
Antiguo 08/12/2011, 12:41
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 20 años, 6 meses
Puntos: 832
Respuesta: home.php o index.php... Esa es la cuestión

Cita:
Iniciado por rogertm Ver Mensaje
Ahora bien, si hago un theme donde cree un archivo llamado home.php (Twenty Ten no lo trae) donde cargue el front de mi sitio, puedo, en teoría, hacer de index.php un archivo donde muestre un mensaje para quien llegue luego de hacer una búsqueda vacía, o poner un formulario de búsqueda avanzada o algo así.
La jerarquía de archivos es un recurso para el desarrollador y no está relacionada con este problema, el cual es simple: is_search() sólo se activa cuando "s=" no es nulo. Por tal motivo fallarán todos los intentos de aplicar alguna condicional si te basas en éste.

Si trabajas con $_GET puedes condicionar el contenido antes del envío y fuera del loop, en el mismo index.php. Reemplaza el código completo de tu index.php por éste y luego efectúa una búsqueda vacía (Ojo: en Twenty Eleven):

Código PHP:
Ver original
  1. <?php
  2. /**
  3.  * The main template file.
  4.  *
  5.  * This is the most generic template file in a WordPress theme
  6.  * and one of the two required files for a theme (the other being style.css).
  7.  * It is used to display a page when nothing more specific matches a query.
  8.  * E.g., it puts together the home page when no home.php file exists.
  9.  * Learn more: http://codex.wordpress.org/Template_Hierarchy
  10.  *
  11.  * @package WordPress
  12.  * @subpackage Twenty_Eleven
  13.  */
  14.  
  15. get_header(); ?>
  16.  
  17.         <div id="primary">
  18.             <div id="content" role="main">
  19.  
  20.             <?php if(isset($_GET['s']) and $_GET['s'] == null) : ?>
  21.  
  22.                 <p>Resultado vacío</p>
  23.  
  24.             <?php else : ?>
  25.  
  26.                 <?php if ( have_posts() ) : ?>
  27.  
  28.                     <?php twentyeleven_content_nav( 'nav-above' ); ?>
  29.  
  30.                     <?php /* Start the Loop */ ?>
  31.                     <?php while ( have_posts() ) : the_post(); ?>
  32.  
  33.                         <?php get_template_part( 'content', get_post_format() ); ?>
  34.  
  35.                     <?php endwhile; ?>
  36.  
  37.                     <?php twentyeleven_content_nav( 'nav-below' ); ?>
  38.  
  39.                 <?php else : ?>
  40.  
  41.                     <article id="post-0" class="post no-results not-found">
  42.                         <header class="entry-header">
  43.                             <h1 class="entry-title"><?php _e( 'Nothing Found', 'twentyeleven' ); ?></h1>
  44.                         </header><!-- .entry-header -->
  45.  
  46.                         <div class="entry-content">
  47.                             <p><?php _e( 'Apologies, but no results were found for the requested archive. Perhaps searching will help find a related post.', 'twentyeleven' ); ?></p>
  48.                             <?php get_search_form(); ?>
  49.                         </div><!-- .entry-content -->
  50.                     </article><!-- #post-0 -->
  51.  
  52.                 <?php endif; ?>
  53.  
  54.             <?php endif; ?>
  55.  
  56.             </div><!-- #content -->
  57.         </div><!-- #primary -->
  58.  
  59. <?php get_sidebar(); ?>
  60. <?php get_footer(); ?>

Etiquetas: blog, index, php, themes
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:33.