wordpress wp_get_archives输出更改为preg_replace

时间:2009-07-07 11:55:23

标签: php wordpress preg-replace

早上好男孩和女孩......请有人指出我正确的方向。

我想替换我的php-echo-output JUNE 29, 2009–JULY 5, 2009 只有纯文本:last week

<?php
ob_start();
wp_get_archives('type=weekly&limit=1');
$wklyarchives = ob_get_contents();
ob_end_clean();
$wklyarchives = preg_replace('%\&\#8211\;[a-zA-Z0-9, ]*\</a\>%s', 'last week</a>', $wklyarchives);
echo $wklyarchives;
?>

这个preg_replace只替换了第二部分,所以我的输出现在是JUNE 29, 2009last week 这个preg让我发疯...

2 个答案:

答案 0 :(得分:1)

你只是匹配破折号和它后面的部分,所以这正是被替换的东西。如果在破折号之前添加相同的角色类,例如

[a-zA-Z0-9, ]%\&\#8211\;[a-zA-Z0-9, ]

它应该可以工作(取决于{JIN 29'部分之前$wklyarchives包含的内容;你可能必须确保你没有太多)。

答案 1 :(得分:0)

好的,用WordPress尝试过这个,工作正常:

'/[a-z0-9,]+ [0-9,]+ [0-9]+.?[a-z0-9,]+ [0-9,]+ [0-9]+/iu'

请记住,不要在wp_get_archives中使用输出缓冲。使用echo = 0:

$wklyarchives = wp_get_archives("type=weekly&limit=1&echo=0");
祝你好运。