Php 如何将404个URL分解为单个单词并搜索它们?

Php 如何将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_

我在我的网页上工作找不到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_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这个词中。所以产品被退回。“产品”将返回同一页

    如果您有一个名为“产品和服务”的页面,您将通过第二次搜索得到一个结果

    也许您可以在空格处拆分字符串,并对每个单词执行搜索,然后将结果附加到彼此