PHP仅包含在主页URL上

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)

它仍然没有出现.

Pan*_*nda 5

您可以使用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)

希望以上方法有所帮助,谢谢!