web-dev-qa-db-fra.com

Ajout de plusieurs filtres de taxonomie à functions.php

J'ai besoin d'ajouter plusieurs filtres de taxonomie au fichier functions.php pour supprimer (3) les taxonomies non pertinentes de l'index de sitemap Yoast SEO. J'ai réussi à ajouter un filtre, mais lorsque j'ajoute les deux autres filtres, je continue à recevoir une erreur de serveur 500. Je dois noter que je suis novice en matière de PHP alors j’imagine qu’il ya quelque chose de assez simple qui me manque ici.

Le filtre qui fonctionne tout seul:

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

mais le code suivant n'a pas fonctionné pour l'ajout des deux filtres restants:

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

Merci d'avance pour l'aide!

-Marque

1
Mark

Essayez 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

Vous ne pouvez pas avoir le même nom de fonction plus d'une fois. Au lieu de cela, renommez-les:

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

Ou mieux encore, combinez-les en une seule fonction:

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