首页 论坛 WordPress 获取当前网页URL并自动跳转404页面
帖子详情

在很多的 WordPress 主题或者插件功能的开发中,我们总是需要获取到 WordPress程序给每个页面定义的 ID,不然也某些情况下是无法确定这是哪一个页面,针对于文章或者页面的 ID 获取基本可以使用 get_the_ID()这个函数来直接获取,但是在循环外该函数是无法获取到值的。

Wordpress 获取当前网页URL和网页ID

WordPress获取当前网页URL地址:

home_url(add_query_arg(array()));

但二级目录下会出错,可用下面的代码

//放入FUNCTIONS 获取当前URL
function curPageURL() {
$pageURL = 'http://';
if ($_SERVER["HTTPS"] == "on") {
$pageURL= "https://";
}
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL = $pageURL.$_SERVER["SERVER_NAME"].
":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL = $pageURL.$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
<?php echo curPageURL();?>

通过URL获取文章页ID:

url_to_postid($current_url);

直接获取文章页ID:

global $post;
$id = $post -> ID;
echo $id;

通过ID获取网页链接地址:

get_permalink($pid);

通过URL获取分类页ID:

get_category_link( $category_id );

应用实例:通过ID获取URL,然后再判断URL里是否包含“?”,然后跳转404网页;

<?php
$current_url = home_url(add_query_arg(array()));
$pid = url_to_postid($current_url);
$link = get_permalink($pid);
if(strpos($current_url,'?') == false){
global $wp_query;
$wp_query->set_404();
status_header(404);
nocache_headers();
include( get_query_template( '404' ) );
die();
}
?>

版权:言论仅代表个人观点,不代表官方立场。转载请注明出处:https://www.52diyhome.com/forum/65503.html

发表评论
暂无评论
  • 0 +

    访问总数

  • 0 +

    会员总数

  • 0 +

    资源总数

  • 0 +

    今日发布

  • 0 +

    本周发布

  • 0 +

    运行天数

资源在于分享,创作来源想象