正在尝试检查$link
有http://
是否在它前面。如果有人插手www.google.com
对于链接字段,它充当WordPress站点内的链接,即:www.website.com/www.google.com
.
$link = get_field(\'advertisement_link\');
$ad_code = \'<a href="\'.$link.\'" target="_blank">Test</a>\';
我正在使用上面的示例代码。这也是一个常见的PHP问题。我该怎么做才对呢?在下面尝试,替换
the_content()
使用
$link
.
$link = get_field(\'advertisement_link\');
if(strpos($link, \'http://\') !== 0) {
return \'http://\' . $link;
} else {
return $link;
}
$ad_code = \'<a href="\'.$link.\'" target="_blank">Test</a>\';
编辑:我需要保留
$ad_code
因为我在里面用
return prefix_insert_after_paragraph( $ad_code, 3, $content );
每3段将此广告插入帖子。
最合适的回答,由SO网友:fischi 整理而成
你不能return
值,但更改变量$link
if(strpos($link, \'http://\') !== 0) {
$link = \'http://\' . $link;
} //no else needed
请注意,如果您的链接以
https://
它还将为
http://
并导致
http://https://example.com
.
更好的方法是here, 根据您的需要进行调整:
在里面functions.php
:
function addhttp($url) {
if (!preg_match("~^(?:f|ht)tps?://~i", $url)) {
$url = "http://" . $url;
}
return $url;
}
您的代码:
$link = addhttp( get_field(\'advertisement_link\') );
$ad_code = \'<a href="\'.$link.\'" target="_blank">Test</a>\';