Check request URL for pattern

时间:2017-02-09 作者:Samuel Gonzalez

我需要帮助。我在woo中制作了一个插件,当URL包含特定单词时,它会添加html。

我用过get_site_url, get_permalink, 还有其他人,但奇怪的是没有人发送信息。最后我决定使用$_SERVER[REQUEST_URI] 而且有效,但在某些页面上无效。为什么会发生这种情况?我能做什么?

2 个回复
SO网友:Roel Magdaleno

URL结构如何?你能在这里粘贴吗?

如果您的URL遵循以下结构:http://example.com/?foo=bar, 所以你需要foo 此值:

if ( isset( $_GET[\'foo\'] ) ) {
   $bar_value = $_GET[\'foo\'];
   // Do whatever you want with $bar_value.
} else {
  // Do something else.
}
如果这不起作用,你可以测试get_query_var()函数,下面是link. 这应该以一种简单的方式像下面的代码一样工作。

告诉我这些对你是否有用。

SO网友:Michael Thompson

我说不出为什么$_SERVER[\'REQUEST_URI\'] 有时不起作用,但这里有一种方法可以检查请求的URL是否包含使用核心的短语WP 类别:

<?php

    global $wp;

    $magic_phrase = \'abracadabra\';
    $request_path = $wp->request;

    if (preg_match(\'/.*\'. $magic_phrase .\'.*/\', $request_path)) {
        // Phrase matches, do what you need here!
    }

?>
这将匹配URL中任何位置包含“abracadabra”的URL。您可以/应该更新用于对照短语检查请求路径的正则表达式,以确保您没有匹配不打算匹配的路径。

核心WP 类对请求做了一些额外的处理,以确保其一致性,使用它而不是服务器变量可能会有所帮助。

相关推荐

How wp maps urls into files

我想了解wordpress的工作原理。我在我的主题中发现了这行代码:<?php echo get_permalink(get_option(\'Theme_search_page_id\')) ?> 如果我从mysql获得该选项,我会收到:mysql> select * from wp_options where option_name=\'Theme_search_page_id\'; +-----------+----------------------------