it-swarm.com.de

Hinzufügen mehrerer Taxonomiefilter zu functions.php

Ich muss der Datei functions.php mehrere Taxonomiefilter hinzufügen, um (3) irrelevante Taxonomien aus dem Sitemap-Index von Yoast SEO zu entfernen. Ich konnte erfolgreich einen Filter hinzufügen, aber wenn ich die anderen beiden Filter hinzufüge, erhalte ich immer wieder einen 500-Server-Fehler. Ich sollte beachten, dass ich ein Anfänger bin, wenn es um PHP geht, also stelle ich mir vor, dass hier etwas ziemlich Einfaches fehlt.

Der Filter, der von selbst funktioniert:

function sitemap_exclude_taxonomy( $value, $taxonomy ) {
if ( 'scope' == $taxonomy ) return true;
 }
 add_filter( 'wpseo_sitemap_exclude_taxonomy', 'sitemap_exclude_taxonomy', 10, 2 );

der folgende Code funktionierte jedoch nicht zum Hinzufügen der beiden verbleibenden Filter:

function sitemap_exclude_taxonomy( $value, $taxonomy ) {
if ( 'scope' == $taxonomy ) return true;
 }
 add_filter( 'wpseo_sitemap_exclude_taxonomy', 'sitemap_exclude_taxonomy', 10, 2 );

function sitemap_exclude_taxonomy( $value, $taxonomy ) {
if ( 'layout_type' == $taxonomy ) return true;
 }
 add_filter( 'wpseo_sitemap_exclude_taxonomy', 'sitemap_exclude_taxonomy', 10, 2 );

function sitemap_exclude_taxonomy( $value, $taxonomy ) {
if ( 'module_width' == $taxonomy ) return true;
 }
 add_filter( 'wpseo_sitemap_exclude_taxonomy', 'sitemap_exclude_taxonomy', 10, 2 );

Vielen Dank im Voraus für die Hilfe!

-Kennzeichen

1
Mark

Probieren Sie PHP in_array .

function sitemap_exclude_taxonomy( $value, $taxonomy ) {
    $excludes = ['scope', 'layout_type', 'foo', 'bar'];
    if ( in_array( $taxonomy, $excludes ) return true;
}

add_filter( 'wpseo_sitemap_exclude_taxonomy', 'sitemap_exclude_taxonomy', 10, 2 );
1
Will

Sie können denselben Funktionsnamen nur einmal verwenden. Benennen Sie sie stattdessen um:

function sitemap_exclude_taxonomy_1( $value, $taxonomy ) {
    if ( 'scope' == $taxonomy ) return true;
}
add_filter( 'wpseo_sitemap_exclude_taxonomy', 'sitemap_exclude_taxonomy_1', 10, 2 );

function sitemap_exclude_taxonomy_2( $value, $taxonomy ) {
    if ( 'layout_type' == $taxonomy ) return true;
}
add_filter( 'wpseo_sitemap_exclude_taxonomy', 'sitemap_exclude_taxonomy_2', 10, 2 );

function sitemap_exclude_taxonomy_3( $value, $taxonomy ) {
    if ( 'module_width' == $taxonomy ) return true;
}
add_filter( 'wpseo_sitemap_exclude_taxonomy', 'sitemap_exclude_taxonomy_3', 10, 2 );

Oder noch besser, kombinieren Sie sie in einer aufgeräumten Funktion:

function sitemap_exclude_taxonomy( $value, $taxonomy ) {
    if (   'scope' == $taxonomy
        || 'layout_type' == $taxonomy
        || 'module_width' == $taxonomy )
       return true;
}
add_filter( 'wpseo_sitemap_exclude_taxonomy', 'sitemap_exclude_taxonomy', 10, 2 );
1
DACrosby