Escribir META DESCRIPCION de un sitio de manera cómoda, segun contenido.

Iniciado por Skeletron, 3 Junio 2013, 02:51 AM

0 Miembros y 1 Visitante están viendo este tema.

Skeletron

Como haces para definir (comodamente) el META DESCRIPTION de un sitio web (dentro del elemento <HEAD>) segun el contenido que va a aparecer en el BODY?

Por ejemplo, si entramos al sitio example.com/item/5/Titulo-del-item

Supongamos que el entrar ahí nos muestra el item 5. Un item tiene un titulo y una descripcion.
Seria muy logico colocar la descripcion de dicho item dentro del META DESCRIPTION para ayudar a Google...
Pero... Es un quilombo... Porque el HEAD se debe escribir antes que el BODY. Entonces, mientras vas "escribiendo el head", aún no hiciste el SELECT a la base de datos para traer el item y demas...

Yo he tenido muchos proyectos y siempre soluciono este problema de formas diferentes (y feas).
Alguien tiene una idea interesante?

basickdagger

bueno yo lo que hago es tengo mi head en un archivo php...
dentro de las etiquetas de title y metas tengo una variable... si la variable viene vacia coloco el titulo del sitio...

entonces si tengo una pagina q se llama tomates... antes de hacer el include de mi pagina pongo mi variable $title="tomates" y despues hagoel include del head...en este caso la variable 'uede ser de una consulta echa via url.... por ejemplo...



esta seria mi head.php


<meta name="keywords" content="<?php if (isset($keywords)){ echo $keywords;}else{echo "el titulo de mi sitio por default";} ?>"/>

<title>
<?php if (isset($title)){
echo $title;
}else{
echo "el titulo de mi sitio por default";
?>
</title>



esta seria mi pagina "tomates.php"

<?php 
$title
="tomates";
$keywords="venta de tomates, recetas con tomates";
include(
'head.php'); ?>


<contenido d epagina tomates>



con esto cuandoentrara al index mostraría "el titulo de mi sitio por default" y al entrar a tomates.php mostraria de titulo tomates y en keywords venta de tomates, recetas con tomates, espero te haya servido... saludos!

Skeletron

Pero la idea es que el "descirption" tenga informacion sobre lo que vas a ver.
Por ejemplo,
Supongamos que vas a ingresar a una pagina de tu sitio donde vas a ver los datos de una fruta.
Y es así:
example.com?fruta=8
Entonces dentro del sitio vas a hacer una consulta a la DDBB y vas a traer los datos de la fruta "8".
En el description, sería interesante poner la descripcion de dicha fruta, pero el problema, es que aún no has hecho el "SELECT" para traer la fruta.

Entiendes?
Tienes que hacer el select en un archivo (en donde esta el head) y luego en donde está el body. Ya que sería muy improlijo de otra manera.

basickdagger

Cita de: Skeletron en  4 Junio 2013, 23:48 PM
Pero la idea es que el "descirption" tenga informacion sobre lo que vas a ver.
Por ejemplo,
Supongamos que vas a ingresar a una pagina de tu sitio donde vas a ver los datos de una fruta.
Y es así:
example.com?fruta=8
Entonces dentro del sitio vas a hacer una consulta a la DDBB y vas a traer los datos de la fruta "8".
En el description, sería interesante poner la descripcion de dicha fruta, pero el problema, es que aún no has hecho el "SELECT" para traer la fruta.

Entiendes?
Tienes que hacer el select en un archivo (en donde esta el head) y luego en donde está el body. Ya que sería muy improlijo de otra manera.

bueno yo haria lo mismo, como tu mismo dices tienes example.com
entonces en el momento q envias la url ?fruta=8 harías el select antes de que cargara tu head... y el resultado de dicho select seria la variable q cambiaria en description, keywords o title... como tu lo deseas...bueno asi yo lo eh hecho...

Skeletron

Exacto.
Pero si tienes el Head en un archivo, y en otro archivo muestras los datos de la fruta, tendrás que hacer 2 SELECT a la Base de Datos para traer el mismo dato. Es muy poco eficiente.

Si bien, tecnicamente yo puedo utilizar en el 2º archivo a la variable que se definió en el 1º archivo (donde estaba el HEAD), no es lo mas "prolijo" para hacer. No es "cómodo".

basickdagger

Cita de: Skeletron en  6 Junio 2013, 00:08 AM
Exacto.
Pero si tienes el Head en un archivo, y en otro archivo muestras los datos de la fruta, tendrás que hacer 2 SELECT a la Base de Datos para traer el mismo dato. Es muy poco eficiente.

Si bien, tecnicamente yo puedo utilizar en el 2º archivo a la variable que se definió en el 1º archivo (donde estaba el HEAD), no es lo mas "prolijo" para hacer. No es "cómodo".

mm bueno tal ves no entendi bien, seria mas facil q coloques la forma en como lo haces ahora y así ver bien que es lo q quieres, saludos..

#!drvy

Tendríais que pensar en estructurar o en hacer un sistema de plantillas. Yo lo que suelo hacer es:

-> consulta: index?id=5
---------> cargar datos de la BD con id 5.
---------> limpiar datos (htmlentities)
---------> cargar plantilla y setear datos.
---------> Imprimir (echo).

Deberías hacer que los archivos que vayan a imprimir html no hagan trabajo(consultas,procesar etcc) simplemente que acepten las variables que les mandan.

Podríais mirar el MVC http://es.wikipedia.org/wiki/Modelo_Vista_Controlador

Saludos

Skeletron

Si, tienes razon.
Conozco MVC pero nunca lo he aplicado para proyectos propios, solo en proyectos freelance.

Debería haber aplicado el patron MVC desde un comienzo. Pero bueno...

Muchas gracias!