nev*_*par 2 php wordpress php-include
我需要在我网站的主页上包含外部php文件.
但是,由于网站上的所有页面都使用相同的页面模板(主页模板),我无法根据它进行过滤,所以我想知道是否有办法将PHP文件仅包含在主页URL(www.domain.com)上/文件夹)而不是在任何其他页面上显示它(例如www.domain.com/folder/lorem).
我尝试在header.php文件中使用此代码段:
<?php
if ($_SERVER['PHP_SELF'] = '/')
include('some-file.php');
?>
Run Code Online (Sandbox Code Playgroud)
并且该文件也包含在所有其他页面上.
我是一个PHP新手很抱歉,如果它是愚蠢的问题:)
更新:我确实把它改成了
<?php
if ($_SERVER['PHP_SELF'] == '/')
include('some-file.php');
?>
Run Code Online (Sandbox Code Playgroud)
它仍然没有出现.
您可以使用WordPress的is_front_page()功能进行检查.
因此,您的代码应该是:
<?php
// if code does not work, adding the next line should make it work
<?php wp_reset_query(); ?>
if ( is_front_page() ) {
include('some-file.php');
}
?>
Run Code Online (Sandbox Code Playgroud)
资料来源:https://codex.wordpress.org/Function_Reference/is_front_page
或者,如果以上操作不起作用,您可以尝试:
if ( $_SERVER["REQUEST_URI"] == '/' ) {
include('some-file.php');
}
Run Code Online (Sandbox Code Playgroud)
作为最后的手段,尝试使用插件将PHP直接插入页面,其中一个插件是https://wordpress.org/plugins/insert-php/.
更新:在评论中详细阐述之后,我想出了另一种方法,如下所示.
在你的情况下,这可能会奏效.此代码首先获取URL,然后解析它以获取目录,并将目录分配给$directory.如果它是主页上的,$directory则不会设置,因此包括some-file.php.
<?php
// Get URL
$link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
// Get Directory (eg. will return 'folder' in example.com/folder/files)
$parts = explode('/', $link);
$directory = $parts[3];
// If $directory is null, include PHP (eg. example.com, there is no directory)
if ($directory == ''){
include('some-file.php');
}
?>
Run Code Online (Sandbox Code Playgroud)
希望以上方法有所帮助,谢谢!