Consulta en BD según año en URL de sitio web

supercordobes Seguir

Zeta
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
2 Sep 2011
Mensajes
1.506
Amigos, me han encargado un sitio que tiene cierta funcionalidad de programación y me gustaría intentar hacerlo con WP ... el problema es que nunca he programado para ese CMS y tampoco uso mucho PHP por lo que no se como encararlo al tema.

Básicamente tengo que hacer un sitio de una determinada marca y modelo de auto cuya url reciba el año del auto que se desea y de acuerdo a ese año realiza una consulta a la BD y muestra el resultado. El tema es que solo debe procesar un rango de números (los años) ... en otros casos la "url" puede referirse a un post u otro tipo de información que no corresponde al sitio.

Un ejemplo de lo que tengo que hacer:
  • www.fordfocus.com/2013 => debo obtener el parametro "2013" y consultar BD.
  • www.fordfocus.com/2012 => debo obtener el parametro "2012" y consultar BD.
  • www.fordfocus.com/2011 => debo obtener el parametro "2011" y consultar BD.
  • www.fordfocus.com/por-que-ford-focus-mejor-auto => no debo hacer nada porque es un post del blog.

La página que va a mostrar la información para cada año debe tener el mismo diseño que el resto del blog, solo que su contenido lo voy a generar yo en lugar de WP.

Gracias a todos
 

Galbatorix

Dseda
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
13 May 2013
Mensajes
1.231
Amigos, me han encargado un sitio que tiene cierta funcionalidad de programación y me gustaría intentar hacerlo con WP ... el problema es que nunca he programado para ese CMS y tampoco uso mucho PHP por lo que no se como encararlo al tema.

Básicamente tengo que hacer un sitio de una determinada marca y modelo de auto cuya url reciba el año del auto que se desea y de acuerdo a ese año realiza una consulta a la BD y muestra el resultado. El tema es que solo debe procesar un rango de números (los años) ... en otros casos la "url" puede referirse a un post u otro tipo de información que no corresponde al sitio.

Un ejemplo de lo que tengo que hacer:
  • dragoman.org2013 => debo obtener el parametro "2013" y consultar BD.
  • dragoman.org2012 => debo obtener el parametro "2012" y consultar BD.
  • dragoman.org2011 => debo obtener el parametro "2011" y consultar BD.
  • dragoman.orgpor-que-ford-focus-mejor-auto => no debo hacer nada porque es un post del blog.

La página que va a mostrar la información para cada año debe tener el mismo diseño que el resto del blog, solo que su contenido lo voy a generar yo en lugar de WP.

Gracias a todos


imho una de las funciones mas oscuras de wordpres es la que hace justo lo que quieres
a mi personalemte lo que quieres hacer se m hace muy dificil aunque estoy consiente de que se puede.

te presento a la funcion wp_rewrite: Class Reference/WP Rewrite « WordPress Codex y su api Rewrite API « WordPress Codex y un tuto The Rewrite API: The Basics | Wptuts+


pd para esto sirve evernote
 

supercordobes

Zeta
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
2 Sep 2011
Mensajes
1.506
imho una de las funciones mas oscuras de wordpres es la que hace justo lo que quieres
a mi personalemte lo que quieres hacer se m hace muy dificil aunque estoy consiente de que se puede.

te presento a la funcion wp_rewrite: Class Reference/WP Rewrite « WordPress Codex y su api Rewrite API « WordPress Codex y un tuto The Rewrite API: The Basics | Wptuts+


pd para esto sirve evernote

Gracias compañero, me pondré a investigar wp_rewrite ... por lo menos me confirmas que se puede hacer lo que necesito por más que este complicado.

Saludos
 

Galbatorix

Dseda
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
13 May 2013
Mensajes
1.231
Gracias compañero, me pondré a investigar wp_rewrite ... por lo menos me confirmas que se puede hacer lo que necesito por más que este complicado.

Saludos

si se puede, yo creo que seria mas facil si haces un diferenciador para tu nuevo permalinnk (Rewrite API/add rewrite endpoint « WordPress Codex) por ejemplo:

Insertar CODE, HTML o PHP:
http://fordfocus.com/modelo/2012/ => permastructure nueva
http://fordfocus.com/modelo/2013/ => permastructure nueva. 
www.fordfocus.com/[B]por-que-ford-focus-mejor-auto[/B] => no debo hacer nada porque es un post del blog.
 

neburor

Dseda
Desde
1 Jul 2012
Mensajes
1.212
Gracias compañero, me pondré a investigar wp_rewrite ... por lo menos me confirmas que se puede hacer lo que necesito por más que este complicado.

Saludos

No es tan complicado, solo necesitas editar el htaccess, difiniendo bien la estrutura de las url, por ejemplo todas las url que pidan solo 4 números se dirigan a un archivo .php y recoja dichos 4 números, y luego por default todas las demás url se vayan al .php que viene por default
 

supercordobes

Zeta
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
2 Sep 2011
Mensajes
1.506
No es tan complicado, solo necesitas editar el htaccess, difiniendo bien la estrutura de las url, por ejemplo todas las url que pidan solo 4 números se dirigan a un archivo .php y recoja dichos 4 números, y luego por default todas las demás url se vayan al .php que viene por default

Voy a investigar esta forma también, creo que es más simple de resolver.

Saludos
 

supercordobes

Zeta
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
2 Sep 2011
Mensajes
1.506
Finalmente y luego de muchísimos días de romperme la cabeza con expresiones regulares de Perl, Wordpress y Php he podido hacer funcionar esto como más o menos necesitaba.

Por si a alguien le sirve esta es la forma que encontre de hacerlo funcionar:

Modificar el archivo .htaccess con una regla de reescritura, nada fuera de lo común, pero el problema es que al ser años se entremezcla con el archivado (por años) de wordpress y ahí es donde deja de ser fácil.

El otro tema es que la redirección no puede hacerse a una página de wordpress porque son dinámicas y no se pueden direccionar desde .htaccess (porque no existen al momento de procesarse el archivo).

Hay que crear una página php en la raíz del sitio para procesar, en este caso se llama "test.php" y recibe un parámetro "a" que es el año:

RewriteRule ^(2011|2012|2013|2014)+$ test.php?a=$1 [L]
RewriteRule ^(2011|2012|2013|2014+)/$ /$1 [R=301,L]
 
Arriba