我正在尝试使用strpos在添加nofollow规则时排除多个url,但它仅适用于1个url,但我无法排除所有需要包含的url。
这是我尝试过的代码:
add_filter( 'custom_bbpress_nofollow', 'my_custom_bbpress_nofollow', 15, 2 );
function my_custom_bbpress_nofollow( $nofollow, $href ) {
if ( strpos( $href, 'https://www.examplelink1.com' ) === false && strpos( $href, 'https://www.examplelink2.com' ) === false && strpos( $href, 'https://www.examplelink3.com' ) === false && strpos( $href, 'https://examplelink4.to' ) === false) {
$nofollow = '';
}
return $nofollow;
}
我也尝试过用== false
和!== false
进行尝试,但这些方法似乎无效。
这个确实可以,但是它只排除了一个域,我需要总共排除5个。
add_filter( 'custom_bbpress_nofollow', 'my_custom_bbpress_nofollow', 15, 2 );
function my_custom_bbpress_nofollow( $nofollow, $href ) {
if ( strpos( $href, 'http://your-domain.here' ) !== false ) {
$nofollow = 'rel="dofollow"';
}
return $nofollow;
}
包含多个网址的正确strpos语法是什么
https://www.examplelink1.com AND/OR
https://www.examplelink2.com AND/OR
https://www.examplelink3.com AND/OR
https://www.examplelink4.com
答案 0 :(得分:0)
我相信您想使用|| (OR),而不是if语句中的&&(AND)。 您的$ href绝不会匹配所有条件,因此使用AND绝不会返回true。使用OR,如果发现其中任何一个,则告诉它设置$ nofollow =''。
add_filter( 'custom_bbpress_nofollow', 'my_custom_bbpress_nofollow', 15, 2 );
function my_custom_bbpress_nofollow( $nofollow, $href ) {
if ( strpos( $href, 'https://www.examplelink1.com' ) === false || strpos( $href, 'https://www.examplelink2.com' ) === false || strpos( $href, 'https://www.examplelink3.com' ) === false || strpos( $href, 'https://examplelink4.to' ) === false) {
$nofollow = '';
}
return $nofollow;
}
编辑:实际上,我不太确定您要做什么。您的2个示例的代码相反,这很令人困惑。如果您希望在href等于5个网址中的任何一个时返回“ rel =“ nofollow””,请尝试以下方法:
add_filter( 'custom_bbpress_nofollow', 'my_custom_bbpress_nofollow', 15, 2 );
function my_custom_bbpress_nofollow( $nofollow, $href ) {
$nofollow = '';
if ( strpos( $href, 'http://your-domain.here' ) !== false ||
strpos( $href, 'https://www.examplelink1.com' ) !== false ||
strpos( $href, 'https://www.examplelink2.com' ) !== false ||
strpos( $href, 'https://www.examplelink3.com' ) !== false ||
strpos( $href, 'https://www.examplelink4.com' ) !== false
) {
$nofollow = 'rel="dofollow"';
}
return $nofollow;
}
您还应该在函数开头定义$ nofollow,否则如果条件不匹配,则不会返回任何内容。
答案 1 :(得分:0)
对不起,我希望它DOFOLLOW
这5个链接,NOFOLLOW
其他所有内容。
add_filter( 'custom_bbpress_nofollow', 'my_custom_bbpress_nofollow', 15, 2 );
function my_custom_bbpress_nofollow( $nofollow, $href ) {
$nofollow = '';
if ( strpos( $href, 'https://www.link1.com' )!== false ||
strpos( $href, 'https://www.link2.com' ) !== false ||
strpos( $href, 'https://www.link3.com' ) !== false ||
strpos( $href, 'https://www.link4.com' ) === false
) {
$nofollow = 'rel="nofollow" target="_blank"';
}
return $nofollow;
}