Enviar Meta Keywords y Description con WordPress API y utilizarlas en cualquier tema

Tiempo de lectura: 2 minutos

Hola, hoy vamos a ver cómo podemos enviar meta keywords y description con WordPress API y utilizarlas en cualquier tema que tengamos instalado.

Lo primero que tenemos que hacer es enviar los Meta Keywords, para ello utilizando Python os pongo un ejemplo de cómo enviarlo usando la API de WordPress:

def publicar_post(titulo, contenido, array_categorias, tags, keywords, description, idioma):

    load_dotenv()
    WORDPRESS_USERNAME = os.getenv("WORDPRESS_USERNAME")
    WORDPRESS_PASSWORD = os.getenv("WORDPRESS_PASSWORD")
    BASE_URL_WORDPRESS = os.getenv("BASE_URL_WORDPRESS")

    WP_url = BASE_URL_WORDPRESS + "/wp-json/wp/v2/posts"

    auth = HTTPBasicAuth(WORDPRESS_USERNAME, WORDPRESS_PASSWORD)

    headers = {
        "Accept": "application/json",
        "Content-Type": "application/json"
    }

    payload = json.dumps({
        "status": "publish",
        "title": titulo,
        "content": contenido,
        "categories": array_categorias,  # categorias
        "tags": tags,
        "lang": idioma,
        'meta': {
            'keywords': keywords,
            'description': description
        }
        # "featured_media": random_image_list
    })

    response = requests.request(
        "POST",
        WP_url,
        data=payload,
        headers=headers,
        auth=auth
    )

    return response

Donde

WORDPRESS_USERNAME = os.getenv("WORDPRESS_USERNAME")
WORDPRESS_PASSWORD = os.getenv("WORDPRESS_PASSWORD")
BASE_URL_WORDPRESS = os.getenv("BASE_URL_WORDPRESS")

Son las variables de inicio de sesión y URL de nuestro WordPress. (Lo obtengo de un .env)

Para que nos permita almacenar estas variables dentro de nuestro wp_postmeta tendremos que añadir esta función dentro de functions.php en nuestro editor de archivos de tema.

function register_custom_meta_fields() {
		register_meta('post', 'keywords', array(
			'show_in_rest' => true,
			'single' => true,
			'type' => 'string',
			'description' => 'Meta keywords for SEO'
		));

		register_meta('post', 'description', array(
			'show_in_rest' => true,
			'single' => true,
			'type' => 'string',
			'description' => 'Meta description for SEO'
		));
	}
	add_action('init', 'register_custom_meta_fields');

Una vez enviado, esta información se almacena en la tabla wp_postmeta

Y ahora tendremos que añadirlo a nuestros POST, para ello vamos al editor de archivos de tema y al archivo llamado functions.php y añadimos lo siguiente:

	function add_custom_keywords() {
		$post_id = get_the_ID();

		// Obtener las palabras clave enviadas a través de la WordPress API
		$keywords = get_post_meta($post_id, 'keywords', true);

		if ($keywords) {
			// Añadir las palabras clave a la etiqueta <meta name="keywords">
			echo '<meta name="keywords" content="' . esc_attr($keywords) . '">';
		}
	}
	add_action('wp_head', 'add_custom_keywords');

Y ahora comprobamos si se muestran las Keywords y Description Añadidas, para ello vamos al navegador, abrimos nuestro post y pulsamos en inspeccionar.

Aparecerá el inspector de código y escribimos Keywords y aparecerán las Keywords:

Lo mismo para la descripción:

	function add_custom_description() {
		$post_id = get_the_ID();

		// Obtener description enviado a través de la WordPress API
		$description = get_post_meta($post_id, 'description', true);

		if ($description) {
			// Añadir las palabras clave a la etiqueta <meta name="keywords">
			echo '<meta name="keywords" content="' . esc_attr($description) . '">';
		}
	}
	add_action('wp_head', 'add_custom_description');

Deja un comentario