ale*_*nco 1 php url wordpress uri
我正在使用WAMP,我的页面的根文件夹是: http://localhost/projects/bp/
在Worpress应用程序中,我想给body
每个页面的标签赋予唯一的ID .所以我做了以下事情:
<?php
$page = $_SERVER['REQUEST_URI'];
$page = str_replace("/","",$page);
$page = str_replace(".php","",$page);
$page = str_replace("?s=","",$page);
$page = $page ? $page : 'default'
?>
<body id="<?php echo $page ?>">
Run Code Online (Sandbox Code Playgroud)
当我单击该About
页面时,URL将更改为以下内容:http://localhost/projects/bp/about
并$page
显示以下值:projectsbpabout
我该怎么做才能让$ page只显示URL的最后一个字.在这种情况下,about
我不想要这projectsbp
部分)?
我是否必须在Wordpress路由中更改某些内容?
我会使用PHP的内置路径解析函数来执行此操作.
使用parse_url()来切断查询并仅获取路径部分:
$path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
Run Code Online (Sandbox Code Playgroud)
(parse_url用于解析完整的URL,但应该可以正常工作.第二个参数自PHP 5.1.2起可用.)
然后使用basename()来提取文件名:
$pagename = basename($path, ".php"); // Will remove `.php` suffix
Run Code Online (Sandbox Code Playgroud)
额外的事情
根据您网站的结构,此方法不一定会生成唯一ID.如果about
是在子页面/bp
和/bc
?(如果可以在Wordpress中使用.)您将拥有两个具有相同ID的不同页面.在这种情况下,您可能希望使用完整路径作为标识符,将斜杠转换为下划线:
<body id="projects_bp_about">
Run Code Online (Sandbox Code Playgroud)
同样根据自己的经验,如果页面被命名为页面上已有的元素,我建议使用类来避免ID冲突!
<body class="projects_bp_about">
Run Code Online (Sandbox Code Playgroud)