我需要向函数添加多个分类过滤器。php文件从Yoast SEO网站地图索引中删除(3)个不相关的分类法。我已经能够成功地添加一个过滤器,但当我添加其他两个过滤器时,我不断收到一个500服务器错误。我应该注意到,在PHP方面,我是一个新手,所以我想这里缺少一些非常简单的东西。
自行工作的过滤器:
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 ( \'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 );
非常感谢您的帮助!
-标记
SO网友:DACrosby
不能多次使用相同的函数名。相反,请重命名它们:
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 );
或者更好的是,将它们组合在一个整洁的功能中:
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 );