web-dev-qa-db-fra.com

aider à écrire un script php personnalisé pour configurer la priorité des pages ou des publications

J'essaie d'améliorer ce script de tutoriel en incluant un switch dans la première ifcondition d'attribuer un priority personnalisé à mon plan Sitemap XML Xo uniquement sur certains articles ou pages.

J'essaie donc de dire à Yoast quelle si certaines pages ont certaines id la priority doivent changer, mais mon script attribue la valeur 0.5 à toutes les pages.

De l'aide?

add_filter( 'wpseo_xml_sitemap_post_priority', 'my_custom_post_xml_priority', 10, 3 );

function my_custom_post_xml_priority( $return, $type, $post) {

if($type == 'page') {
switch ($post) {
case '8':
case '395':
case '342':
$return = 0.9;
case '5':
$return = 1.00;
case '620':
case '703':
case '603':
case '688':
case '695':
case '614':
case '684':
case '639':
case '628':
case '539':
case '542':
case '521':
case '509':
case '517':
case '528':
case '533':
case '536':
case '548':
case '545':
case '525':
case '551':
$return = 0.7;
break;
default:
$return = 0.5;
break;
}
}

elseif ($type == 'post') {
$return = 0.8;
}

return $return;
}
1
Emanuele

La solution devrait être la suivante:

add_filter( 'wpseo_xml_sitemap_post_priority', 'my_custom_post_xml_priority', 10, 3 );

function my_custom_post_xml_priority( $return, $type, $post) {

    if($type == 'page') {
        switch ($post->ID) {
        case '8':
        case '395':
        case '342':
            $return = 0.9;
            break;
        case '5':
            $return = 1.00;
            break;
        case '620':
        case '703':
        case '603':
        case '688':
        case '695':
        case '614':
        case '684':
        case '639':
        case '628':
        case '539':
        case '542':
        case '521':
        case '509':
        case '517':
        case '528':
        case '533':
        case '536':
        case '548':
        case '545':
        case '525':
        case '551':
            $return = 0.7;
            break;
        default:
            $return = 0.5;
            break;
        }
    } elseif ($type == 'post') {
        $return = 0.8;
    }

    return $return;
}

Je pense que $post est un objet WP_Post , vous devrez alors comparer l'ID de propriété sur le commutateur.

1
Mirko