web-dev-qa-db-fra.com

Une solution pour définir des balises méta avec mon plugin générateur de page?

J'ai un plugin qui génère une page automatiquement. Est-il possible d'ajouter des fonctionnalités à ce plugin qui me permettraient de définir la méta description, les mots-clés et le titre de la page? J'ai étudié des plugins SEO comme Yoast et AIOSEO mais je n'arrive pas à atteindre l'objectif souhaité.

Voici la source (MISE À JOUR) :

<?php

function wpse_36395_metadesc() {
    return 'Your Description';
}

if($city){

    $args = array(
        'post_title'   => $city . " Electrician",
        'post_name'    => $city . "-electrician",
        'post_date'    => $_SESSION['cal_startdate'],
        'post_content' => $citycontent,
        'post_status'  => 'publish',
        'post_type'    => 'page',
        'post_parent'  => 11192
    );

    $city_id = wp_insert_post($args);

    add_filter( 'wpseo_metadesc', 'wpse_36395_metadesc' );
}
?>

Sincères amitiés,

Brandon

1
Brandon Jones

Théoriquement , vous pourriez accrocher entre wp_head et echo vos balises à partir de votre rappel:

function wpse_36395_meta_tags() {
    echo '<meta name="description" content="Your Description" />';
}
add_action( 'wp_head', 'wpse_36395_meta_tags' );

Mais notez que si un thème a déjà la ou les balises codées en dur dans sa section <head></head>, vous obtiendrez des balises en double.
Que ce soit plus souhaitable que de manquer le vôtre sur ces pages, vous devrez décider vous-même.
Je ne pense pas que je garderais un plugin installé pour forcer les balises méta dans mon en-tête.

Modifier: En ce qui concerne votre commentaire, je ne connais pas du tout l’API de référencement WordPress, mais il s’agit de filtres simples, alors jetez un coup d’œil à add_filter et vous devriez pouvoir utiliser cette API.

Cela devrait donner le résultat souhaité:

function wpse_36395_metadesc() {
    return 'Your Description';
}
add_filter( 'wpseo_metadesc', 'wpse_36395_metadesc' );

Notez que maintenant vous rendez votre plugin dépendant de WordPress SEO, bien qu'il se refuse gracieusement, s'il n'est pas activé/installé.

1
Johannes Pille

Brandon,

Voici comment procéder avec le pack SEO All in One:

<?php

if( $city ){

    $args = array(
    'post_title'   => $city . " Electrician",
    'post_name'    => $city . "-electrician",
    'post_date'    => $_SESSION['cal_startdate'],
    'post_content' => $citycontent,
    'post_status'  => 'publish',
    'post_type'    => 'page',
    'post_parent'  => 11192
    );

    $city_id = wp_insert_post($args);
    add_post_meta( $city_id, '_aioseop_title', $city . " Electrician" );
    add_post_meta( $city_id, '_aioseop_description', $citycontent );
    add_post_meta( $city_id, '_aioseop_keywords', 'city, electricians' );
}

Je viens de choisir des exemples de valeurs ici, mais ce sont les clés postmeta que le pack SEO All in One utilise pour les articles/pages, etc. J'espère que cela vous aidera!

0
pbaylies