我不是PHP的人,所以不知道该怎么做,但尝试了下面给出的东西。
要求:
<link href="<?php the_permalink(); ?>">
目前给我这个输出:
<link href="http://example.com/au/">
我需要在运行时使用正则表达式或任何字符串替换函数更改 URL 的一部分。
像这样:
<link href="<?php echo str_replace("/au/","/uk/","<?php the_permalink(); ?>"); ?>"/>
我以为这会起作用,但它给了我这个:
<link href="http://example.com/uk/"/>
请告知正确的解决方案。
首先,当你已经在PHP标签中时,你不需要PHP标签。其次,函数the_permalink()
实际上并没有返回你想要的值,它只是显示它(请参阅这篇文章,了解更多关于显示和恢复的区别:Wordpress(ACF)函数不返回值)
因此,您可能希望在此处使用get_permalink()
,因为此函数返回所需的值。然后,您也可以像已经尝试过的那样使用它:
<link href="<?php echo str_replace("/au/","/uk/", get_permalink()); ?>"/>
与其在
每次需要时都手动执行字符串替换,我建议在函数中添加以下过滤器.php:
function au_to_uk_permalink($url) {
return str_replace('/au/','/uk/', $url);
}
add_filter('the_permalink', 'au_to_uk_permalink');
您现在可以像往常一样在模板中使用the_permalink()
函数,并且将自动应用字符串替换:
<?php the_permalink(); ?>
<!-- Outputs: http://example.com/uk/some-post/ -->
阅读有关法典中the_permalink
过滤器的更多信息。
试试这个:
<?php
$link = get_permalink();
$link = str_replace("/au","/uk",$link);
?>
<link href="<?php echo $link; ?>" />