PHP代码在PHTML文件中不起作用

时间:2014-12-23 23:17:31

标签: html wordpress .htaccess php

我正在尝试将Wordpress菜单集成到Boxbillng主题中,但问题是我正在使用的PHP代码根本没有被解析。

以下是获取Wordpress菜单的代码:

<?php 
    include( '../wp-load.php' );
    wp_nav_menu( array ( 'menu' => 'Main Menu' ) );
?>

然后是BoxBilling主题的代码:

<div class="main-navigation">
    <?php
        echo file_get_contents("http://www.glowstonehosting.net/nav.php");
    ?>
</div>

然后在Google Chrome Inspect Element中显示了这一点:

 <!--?php
        echo file_get_contents("http://www.glowstonehosting.net/nav.php");
 ?-->

所以他们都被评论了,我也尝试了另一个问题的答案之一:php in .phtml file not parsing

唯一的答案建议将其添加到Wordpress .htaccess:

AddType application/x-httpd-php .php .phtml

哪些仍然没有用,所以有人有任何想法吗?

2 个答案:

答案 0 :(得分:0)

我认为最简单的方法是创建Twig扩展,稍后在.phtml文件中使用它。

创建一个函数:

public function get_contents($url)
{
    return file_get_contents($url);
}

将其包含在树枝过滤器列表中:

public function getFilters()
{
    return array(
        new \Twig_SimpleFilter('get_contents', array($this, 'get_contents')),
    );
}

并在Twig模板的任何地方使用它:

{{ 'http://www.glowstonehosting.net/nav.php'|get_contents }}

How to Write a custom Twig Extension

Creating an extension for advanced users

答案 1 :(得分:-1)

file_get_Contents将文件作为字符串加载,不解释PHP。你想要的是includerequire,它将解释php。

<div class="main-navigation">
    <?php
        include("some/filesystem/path/nav.php");
    ?>
</div>

请注意您要在文件系统上使用文件路径的更改,可能是您正在调用include的同一服务器上加载文件。如果是这种情况,你不需要添加处理程序,除非你打算通过网络服务器直接点击php文件,如http://somedomain.com/somefile.phtml