Lenguaje PHP

Títulos dinámicos en PHP y MySQL

Títulos dinámicos en PHP y MySQL. Para actualizar etiquetas de títulos, meta descripciones, elementos de enlaces canónicos, etc. de diferentes páginas, a menudo usamos un CMS que tiene toda esa parte trabajada de manera dinámica.

Nota:

Por ejemplo, si usamos complementos de WordPress o módulos de Drupal para hacer el trabajo, generalmente tenemos un proceso que es eficiente y bien optimizado.

Generar títulos dinámicos en PHP y MySQL

Los CMS con utilidades de SEO integradas son geniales. Sin embargo, ¿qué sucede cuando tiene la tarea de implementar todos los elementos HTML pertinentes página por página en un sitio web basado en PHP con un <head> estático? Entonces vamos a darle solución.

Crear un <head> dinámico

En la mayoría de los casos, cada archivo PHP estático, ya sea index.php, contacto.php, nosotros.php, etc. Hará referencia al mismo archivo header.php a través de una declaración de inclusión (include o require). Veamos un ejemplo.

<?php 
include('header.php'); 
?>

Agregar include o require

La declaración de inclusión le dice al servidor que cualquier código dentro de header.php también debe incluirse en el archivo que se solicita. De esta manera, no tenemos que escribir mucho del mismo HTML en cada página de contenido.

Por lo tanto, tenemos este archivo estático del que podemos extraer el código necesario. Tenga en cuenta que el archivo header.php no contiene necesariamente solo el HTML <head>.

Generalmente, incluirá cualquier código que sea reutilizable en la parte superior del documento HTML en todo el sitio web (incluido el logotipo, la navegación, el banner, etc.).
Veamos un ejemplo:

<html lang="en">
<head>
<title>Page Title Here</title>
<meta name="description" content="Meta description goes here.">
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="wrapper">
. . .

¿Como crear títulos dinámicos en PHP y MySQL

Para implementar títulos y meta descripciones dinámicos en cada página del sitio web debemos de manejar alguna consulta SQL y declaraciones condicionales. Veamos un ejemplo.

<html lang="en">
<head>
<title><?php echo $pageTitle; ?></title>
<meta name="description" content="<?php echo $pageDescription; ?>">
<?php
// If canonical URL is specified, include canonical link element
if($pageCanonical)
{
echo '<link rel="canonical" href="' . $pageCanonical . '">';
}
// If meta robots content is specified, include robots meta tag
if($pageRobots)
{
echo '<meta name="robots" content="' . $pageRobots . '">';
}
?>

<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="wrapper">
. . .

Ahora que tenemos un <head> con elementos que se basan en variables definidas en la página, hemos hecho la mayor parte del trabajo «difícil». Pasemos a definir estas variables específicas de página.

Definir variables PHP específicas de la página

El segundo paso es definir cada página de nuestro sitio, todos los archivos PHP individuales, necesitaremos como mínimo, dos variables ($pageTitle y $pageDescription) antes de nuestra instrucción include(header.php).

Para validar estas variables, escribiremos algunos condicionales para detectar casos en los que estas variables no están definidas; pero por ahora, tendremos mucho cuidado al definirlos en cada página. También tenemos la opción de definir dos variables adicionales ($pageCanonical y $pageRobots).

¿Como definir una cadena en títulos dinámicos?

Para definir una variable, usamos la sintaxis: $variable = "Esto es una cadena";. Avancemos y asignemos valores a nuestras cuatro variables para la página de inicio. Además, trabajaremos con el archivo index.php

<?php
// Define variables for SEO
$pageTitle = 'Orange Widgets | The Best Orange Widgets';
$pageDescription = 'Visit AwesomeOrangeWidgets.com to find the best orange widgets in all the lands (Oz included).';
$pageCanonical = 'http://www.awesomeorangewidgets.com/';
// We don't want the search engines to see our website just yet
$pageRobots = 'noindex,nofollow';

// Include header file
include('header.php');

. . .

?>

Si pudieron observar hemos definido nuestro título, meta descripción, URL canónica y contenido de meta robots con cuatro variables de PHP.

Segunda forma: Usando While

Como ya habrá notado, el motor principal es un bucle que extrae información de base de datos. Sin embargo, debemos de generar los datos directamente dentro del ciclo y almacenarlo en alguna variable para su uso futuro. Y solo entonces comience cualquier salida.

<?php

$query = mysqli_query($con," SELECT * FROM posts WHERE id = '$id' ");
while ($row = mysqli_fetch_array($query))
{
$page_title = $row['page_title'];
$page_content = $row['page_content'];
}

?>

Luego de obtener los resultados desde la base de datos podemos plasmar los resultados en una determinada página en el cual deseamos colocar y titulo y meta dinámico a través de una consulta SQL.

<html>
<head>
<title><?php echo $page_title; ?></title>
</head>
<body>
<?php echo $page_content; ?>
</body>
</html>

Conclusión

En este articulo hemos aprendido a generar títulos dinámicos usando PHP y como fuente de información una base de datos como ser MySQL o MariaDB y/o cualquier otra base de datos.

Generalmente para extraer valores de una base de datos podemos apoyarnos de alguno ciclo, como ser: Ciclo While, ciclo foreach u otro ciclo.

Todo esto apoyados de una consulta SQL en específico para dinamizar nuestros títulos en cada página en PHP.

Para las conexiones SQL se recomienda usar PDO por su seguridad y flexibilidad, incluso PDO PHP puede conectarse con SQL SERVER para trabajar sin problemas.

Nestor Tapia

Bloggero, amante de la programación PHP, innovador y me fascina compartir información. Desde que conocí el entorno informatico y el internet me llamó la atención la programación, Por tal motivo he creado mi blog BAULPHP.COM para compartir mis experiencias con todos ustedes. ¡Gracias por leerme!.

Un comentario

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Esta web utiliza cookies propias para su correcto funcionamiento. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad