Yoast Seo Plugin – Setzen Sie keinen Index auf einen Beitrag automatisch, wenn ein Beitrag auf sticky gesetzt ist

Ich bin ein Inhaltsüberwacher auf einer WordPress-Site, es verwendet WordPress Seo von Yoast Plugin. Meine Pflicht besteht darin, den Inhalt zu analysieren und ihn als klebrig zu markieren, wenn er passend erscheint. Wenn ich einen bestimmten Post als sticky markiere, gibt es eine function, die den Post nur auf der Kategorieseite erscheinen lässt. Als nächstes muss ich die Single-Post-View manuell auf No-Index setzen, wie vom Site-Owner angewiesen.

Da die Seite riesig ist, wird dieser process wirklich mühsam, deshalb suche ich nach einer Möglichkeit, diesen process teilweise zu automatisieren. Ich versuche eine function zusammenzustellen, die den Post auf keinen Index setzt, sobald ich den Post als sticky aktualisiere.

Zuerst würde ich gerne wissen, welche wp-function ausgetriggers wird, wenn ein Beitrag auf sticky gesetzt ist. Zweitens, da die Seite das Seo-Plugin von yoast verwendet, würde ich gerne über den Hook / Filter des Seo-Plugins wissen, der den Post auf keinen Index setzt. Auf der Suche nach relevanten Filtern oder Hooks habe ich die Seo-Plugin-API- Seite von yoast gefunden, die ein paar Filter enthält, aber ich konnte nichts finden, was für meinen Zweck nützlich sein könnte.

Solutions Collecting From Web of "Yoast Seo Plugin – Setzen Sie keinen Index auf einen Beitrag automatisch, wenn ein Beitrag auf sticky gesetzt ist"

In meinem Bemühen, dies zu lösen, habe ich eine großartige Ressource für WordPress-Hooks für den Job entdeckt und hier den richtigen Hook wpseo_saved_postdata gefunden . Fühlen Sie sich frei, den Code zu ändern, wenn Sie denken, dass es besser sein könnte. Für jetzt funktioniert es für mich.

 function set_noidex_when_sticky($post_id){ if ( wp_is_post_revision( $post_id ) ) return; //perform other checks //if(is_sticky($post_id)){ -----> this may work only AFTER the post is set to sticky if (isset($_POST['sticky']) == 'sticky') { //this will work if the post IS BEING SET ticky add_action( 'wpseo_saved_postdata', function() use ( $post_id ) { update_post_meta( $post_id, '_yoast_wpseo_meta-robots-noindex', '1' ); }, 999 ); } } add_action( 'save_post', 'set_noidex_when_sticky' ); 

Nur _yoast_wpseo_meta-robots-noindex war die Meta, die ich ändern wollte. Unten finden Sie einige Metaschlüssel von yoast, wenn Sie Änderungen mit dem Code vornehmen möchten.

 _yoast_wpseo_google-plus-description _yoast_wpseo_linkdex _yoast_wpseo_opengraph-description _yoast_wpseo_redirect _yoast_wpseo_canonical _yoast_wpseo_sitemap-html-include _yoast_wpseo_sitemap-prio _yoast_wpseo_sitemap-include _yoast_wpseo_meta-robots-adv _yoast_wpseo_meta-robots-nofollow _yoast_wpseo_meta-robots-noindex _yoast_wpseo_metadesc _yoast_wpseo_title 

Warum überprüfen Sie nicht einfach, ob der Beitrag sticky ist und noindex hinzufügen? Sie können das bedingte Tag is_sticky() .

Also, in Ihrem -Tag in Ihrer header.php Datei, gehen Sie wie folgt vor:

 if ( is_sticky() && is_single() ) { // it's a post and it's sticky, let's add noindex echo ''; }