WordPress中获取当前页面URL
在WordPress主题和插件的开发过程中,经常需要获取当前页面的URL,之前我也写了个教程,讲解如何使用PHP获取当前页面的URL,不过使用php编写代码受网站环境影响较大,代码过多。我就在想,能不能使用WordPress原生的函数来实现这个功能呢?不曾想还真找到了方法,你可以直接使用以下代码来获取当前页面的URL:
$current_url = home_url(add_query_arg(array()));
子目录WP的方法
不过可惜的是,如果你的WordPress安装在子目录下,且站点地址也使用子目录(如:www.example.com/wp),那么以上代码就没法正常工作了。以下是针对此缺陷的修正代码,适用范围更加普遍:
global $wp;
$current_url = home_url(add_query_arg(array(),$wp->request));
默认固定链接
如果你的WordPress使用的默认的链接,安装在子目录,站点地址也使用子目录,同时又是使用带 ? 的默认链接,如www.example.com/wp/?p=4,你可以使用以下代码来获取当前页面URL:
global $wp;
$current_url = add_query_arg( $wp->query_string, '', home_url( $wp->request ) );
使用说明
1、如果你的WordPress使用的不是默认的固定链接,首页是www.example.com这种形式,推荐使用第一部分的代码;
2、如果你的WordPress使用的不是默认的固定链接,首页是www.example.com/wp这种子目录形式,推荐使用第二部分的代码;
3、如果你的WordPress使用的是默认的固定链接,首页是www.example.com,文章是www.example.com/?p=4这种形式,推荐使用第一部分的代码;
4、如果你的WordPress使用的是默认的固定链接,首页是www.example.com/wp,文章是www.example.com/wp/?p=4这种子目录形式,推荐使用第三部分的代码;
参考文章
https://www.ludou.org/get_current_page_url.html
http://www.stephenharris.info/2012/how-to-get-the-current-url-in-wordpress/
-- 完 --
本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息:
原文出处:露兜即刻 https://www.ludou.org/how-to-get-the-current-url-in-wordpress.html
学习一下
这个可以有~简单很多了~
来学习了….
站长你好。
你开发的垃圾评论过滤插件,是我用的WP插件里效果最好的、最有效的,解决了数年来的英文垃圾狂轰滥炸,每天博客都有几千的英文垃圾群发跟贴,用上你的插件,立即就没了,效果是立竿见影。
但是这几天,新情况出现了,出现了很多日文的垃圾跟贴,一天也是几百上千。能不能根据新情况,设计屏蔽日文的插件呢,供您思考。感谢,叩首!
@站长你好 中文和日文有很多相似的地方,完全分辨中文和日文比较复杂。
给你的提供的方法,一、如果是单纯一个IP,就禁止这个IP访问;2、使用 小墙 插件;3、使用AJAX的评论方式;4、使用多说等第三方评论插件
学习咯~
学习,记录起来备用
我只想要如何获取用户浏览记录。。。
来学习一下
我的好像是第二种…
大神你好!
请教你一个问题。在制作WordPress主题的时候遇到这样一个问题,一个父分类下面好几个子分类,我想实现同一个父分类下不同子分类之间的文章可以实现连续翻页.
我现在的代码是这样子的.
<?php previous_post_link('%link','上一章', TRUE) ?>
<?php next_post_link('%link','下一章',TRUE) ?>
这两个实现翻页的代码是放置在single.php里面.
这样的代码,可以实现单个子分类下的文章翻页,当到单个子分类最后一篇文章的时候,不能翻页到 同一个父分类下另外一个子分类的第一篇文章.
不知道大神有好的解决办法没有? 谢谢!
@Era 请同时勾选父分类和子分类
@Ludou 你好!
代码是在single.php里面 没有法进行勾选吧?
@Era 文章编辑页(点击文章-写文章那个页面)的分类目录
先自己试过再发表评论,谢谢!
经过测试,二级域名下,两种代码返回的都是首页URL,不能获取当前URL
纠正一下,第二种方法即使在二级域名下,也可以获取当前链接,但是要在前面添加 全局变量 global $wp;
希望补充提示下
@胡倡萌 感谢提醒。代码已修改。
@Ludou 再次发现个问题,貌似如果固定连接设置为默认的带?的那种,这种方法也是无法正确获取的。希望老大也测试下,看看是否真如此
@胡倡萌 文章已更新
最后的总结中似乎1、3可以合并为:如果首页根目录形式,不管固定链接格式,都选择第一种代码。
根据这个文章的思路,写一个函数如下:
function wp_current_request_url(){
global $wp;
$home_root = strpos(home_url(),'/') === false ? true : false;
$permalink = trim(get_option('permalink_structure')) != '' ? true : false;
if($home_root){
return home_url(add_query_arg(array()));
}
if(!$home_root && $permalink){
return home_url(add_query_arg(array(),$wp->request));
}
if(!$home_root && !$permalink){
return add_query_arg($wp->query_string,'',home_url($wp->request));
}
}
尚没有测试,不知是否可行
第一种在首页会输出http://example.com/xmlrpc.php
@Lar 首页你直接写URL吧
老大,我的博客是纯图片主题,文章进行了分页,每页一张图,有没有办法点击图片跳到下一页?
能否获取页面的完整链接 包括锚点,及其它参数~