Php 如何将404个URL分解为单个单词并搜索它们?
我在我的网页上工作找不到404模板。出于某种原因,我的条件似乎不起作用: 我试图实现的是分解路径并搜索每个表达式。 我从表达式中删除-and uPhp 如何将404个URL分解为单个单词并搜索它们?,php,html,wordpress,Php,Html,Wordpress,我在我的网页上工作找不到404模板。出于某种原因,我的条件似乎不起作用: 我试图实现的是分解路径并搜索每个表达式。 我从表达式中删除-and u $s = preg_replace("/(.*)-(html|htm|php|asp|aspx)$/","$1",$wp_query->query_vars['name']); $posts = query_posts('post_type=any&name='.$s); $s = str_
$s = preg_replace("/(.*)-(html|htm|php|asp|aspx)$/","$1",$wp_query->query_vars['name']);
$posts = query_posts('post_type=any&name='.$s);
$s = str_replace("-"," ",$s);
$s = str_replace("_"," ",$s);
if (count($posts) == 0) {
$posts = query_posts('post_type=any&s='.$s);
}
if (count($posts) > 0) {
echo "<ol><li>";
echo "<p>Were you looking for <strong>one of the following</strong> posts or pages?</p>";
echo "<ul>";
foreach ($posts as $post) {
echo '<li><a href="'.get_permalink($post->ID).'">'.$post->post_title.'</a></li>';
}
echo "</ul>";
}
$s=preg_replace(“/(.*)-(html | htm | php | asp | aspx)$/”、“$1”、$wp_query->query_vars['name'”;
$posts=query\u posts('post\u type=any&name='。$s);
$s=str_替换(“-”、“”、$s);
$s=str\u替换(“\u”,”,$s);
如果(计数($posts)==0){
$posts=query\u posts('post\u type=any&s='。$s);
}
如果(计数($posts)>0){
回声“”;
echo“您是否正在查找以下帖子或页面之一?”;
回声“”;
foreach($posts作为$post){
回音“”;
}
回声“
”;
}
如果我键入“产品”
它说:
让我帮你找到你来这里的目的:你在找什么
以下文章或页面之一?
产品
因此,它发现了产品,这是伟大的
但如果我输入“产品和服务”
尽管我希望得到上面列出的产品和服务页面,但它什么也找不到
我错过了什么
谢谢,我从未使用过wordpress,但我注意到您更改了
queryposts()
在第一个检查中,您执行以下操作:
$posts=query\u posts('post\u type=any&name='。$s)//注意&名称=
在第二个检查中,您执行以下操作:
$posts=query\u posts('post\u type=any&s='。$s);//注意&s=
这完全取决于
queryposts()内部发生的事情。就我个人而言,我会在字符串的另一端使用“'-”和explode(“-”,$string)
将它们分割成一个数组。它对您不起作用的原因是Wordpress的搜索只返回满足查询中所有单词的帖子。所以,“products_s”变成了“products s s”,而“products”和“s”都在products这个词中。所以产品被退回。“产品”将返回同一页
如果您有一个名为“产品和服务”的页面,您将通过第二次搜索得到一个结果
也许您可以在空格处拆分字符串,并对每个单词执行搜索,然后将结果附加到彼此