[英]How do I replace the string value in php in this case?
我不是一个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()); ?>"/>
我不建议每次需要时都手动更换字符串,我建议在functions.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/ -->
阅读有关Codex中the_permalink
过滤器的更多信息。
尝试这个:
<?php
$link = get_permalink();
$link = str_replace("/au","/uk",$link);
?>
<link href="<?php echo $link; ?>" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.