微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php-WordPress检查您是否在当前页面(不是菜单)上

我正在创建一个类似于自定义菜单小部件的简短代码,但我是从下拉列表中选择页面,而不是在wordpress内创建菜单(我也在其中添加了颜色,因此我无法只需使用常规的wordpress菜单小部件).

到目前为止,还不错,这只是困扰我的一件事.我想检查我所在的页面是否与列表中的页面匹配(在实际页面上).我用谷歌搜索了一下,发现

$actual_link = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

我可以获得当前所在的页面(在浏览器中看到的链接).完善!

因此,如果要添加一个称为当前页面的类,只需查看$actual_link是否与下拉列表中选择的链接相匹配.

我正在页面扩展插件The Creator中工作,因此我知道如何在其中创建有效的简码.我的页面下拉列表是通过创建一个数组来创建的,该数组将页面url作为键并将页面名称作为值.我的循环是:

$args = array (
    'post_type' => 'page',
    'posts_per_page' => -1,
    'orderby' => 'menu_order',
    'order' => 'ASC',
);
$pages = get_posts($args);

$forms = array();
if(is_array($pages)){
    foreach ($pages as $page) {
        $forms[$page->url] = $page->post_title;
    }
}

而且效果很好.除了我从中获得的url的形式为:

http://www.example.com/?page_id=150

鉴于我将永久链接设置为不错,因此浏览器中的实际链接

http://www.example.com/my_page_name

该ID是正确的,如果我单击“菜单链接,我将转到该页面(所需结果).但是现在我不能只是说:

$current = ($actual_link == $link) ? 'current_page' : '';

其中$link是用于保存下拉列表中指向页面链接的变量,因此我可以将其附加到列表中,以检查自己是否在当前页面上(添加current_page类).我需要出于样式目的的此类-如果我在具有此菜单简码的页面上,则在与该页面匹配的链接旁边,我将得到V形符号(>).

所以我的问题是,无论我使用什么永久链接设置,如何获取匹配的URL?有没有一种方法可以在get_posts()查询中或使用$_SERVER []变量来指定?

我正在尝试避免使用javascript,并在服务器端执行所有操作.

解决方法:

您需要将get_the_ID()放在get_permalink()内,它将返回您必须与$actual_link匹配的链接

$link = get_permalink(get_the_ID()); 

这样的事情.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐