webentwicklung-frage-antwort-db.com.de

hilfe beim Schreiben eines benutzerdefinierten PHP-Skripts zum Einrichten der Priorität von Seiten oder Posts

Ich versuche, dieses Tutorial-Skript zu verbessern , das eine switch in die erste ifbedingung einschließt, um meiner Yoast Xml-Sitemap eine benutzerdefinierte priority zuzuweisen nur zu bestimmten Beiträgen oder Seiten.

Also versuche ich zu Yoast zu sagen, welche , wenn einige Seiten eine bestimmte id haben, die priority ändern muss, aber mein Skript weist allen Seiten den Wert 0,5 zu.

Irgendeine Hilfe?

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

Die Lösung sollte folgendermaßen aussehen:

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;
}

Ich denke, dass $post ein WP_Post-Objekt ist , dann müssen Sie die Eigenschafts-ID auf dem Schalter vergleichen.

1
Mirko