Wordpress 显示 PHP 代码而不是菜单内容
Wordpress shows PHP code instead of menu content
将 WordPress 从本地环境移动到实时服务器后,我遇到了一个奇怪的菜单问题。
在我的本地服务器上,菜单显示正确,而在实时服务器上,只显示了一段菜单代码,而不是实际的菜单。 (基本上,它会截断数组第一个参数中 =>
之后的代码,并输出其余代码而不是显示菜单。)
本地服务器版本
在线服务器版本
其他一切正常 - 后端正常,所有链接也正常工作,这让我认为迁移顺利,问题出在 PHP 本身。
header.php
中菜单的完整代码如下所示(有两个相邻的菜单):
<div class="collapse navbar-collapse" id="main-navigation-collapse">
<? wp_nav_menu (array(
'sort_column' => 'menu_order',
'menu_class' => 'nav navbar-nav list-inline',
'theme_location' => 'primary'
)); ?>
<? wp_nav_menu (array(
'sort_column' => 'menu_order',
'menu_class' => 'nav navbar-nav navbar-right list-inline',
'theme_location' => 'top-menu'
)); ?>
</div>
菜单在 functions.php
中注册如下:
register_nav_menus( array(
'primary' => __( 'Primary Menu', 'be-emobil' ),
'top-menu' => __('Top Menu', 'be-emobil'),
'footer-menu' => __('Footer Menu', 'be-emobil'),
'footer-menu-2' => __('Footer Menu 2', 'be-emobil')
) );
一些可能有用的信息:
- 我使用 _s(下划线)主题作为我的基础。
- 本地PHP版本是5.6.7
- Live PHP 版本是 5.6.8-pl0-gentoo
知道为什么会发生这种情况,或者我如何找出问题所在?
尝试启用短标签?
添加
short_open_tag=On
到您的 php.ini 并重新启动 php-fpm 和您的网络服务器。
您的实时服务器未启用 Short Tags。
您可以执行以下操作:
- 更改
- 在 php.ini
中启用短标签
- 在您的 .htaccess 文件中启用短标签
- 使用php ini_set在文件中启用短标签
根据您在实时服务器上对 php.ini、.htaccess 等的访问权限,您需要相应地选择您的解决方案
将您的 Shorttags <?
替换为 <?php
它们并不适用于所有环境。
或者尝试在 php.ini 中打开它们(如果您有权访问它)。
将 WordPress 从本地环境移动到实时服务器后,我遇到了一个奇怪的菜单问题。
在我的本地服务器上,菜单显示正确,而在实时服务器上,只显示了一段菜单代码,而不是实际的菜单。 (基本上,它会截断数组第一个参数中 =>
之后的代码,并输出其余代码而不是显示菜单。)
本地服务器版本
在线服务器版本
其他一切正常 - 后端正常,所有链接也正常工作,这让我认为迁移顺利,问题出在 PHP 本身。
header.php
中菜单的完整代码如下所示(有两个相邻的菜单):
<div class="collapse navbar-collapse" id="main-navigation-collapse">
<? wp_nav_menu (array(
'sort_column' => 'menu_order',
'menu_class' => 'nav navbar-nav list-inline',
'theme_location' => 'primary'
)); ?>
<? wp_nav_menu (array(
'sort_column' => 'menu_order',
'menu_class' => 'nav navbar-nav navbar-right list-inline',
'theme_location' => 'top-menu'
)); ?>
</div>
菜单在 functions.php
中注册如下:
register_nav_menus( array(
'primary' => __( 'Primary Menu', 'be-emobil' ),
'top-menu' => __('Top Menu', 'be-emobil'),
'footer-menu' => __('Footer Menu', 'be-emobil'),
'footer-menu-2' => __('Footer Menu 2', 'be-emobil')
) );
一些可能有用的信息:
- 我使用 _s(下划线)主题作为我的基础。
- 本地PHP版本是5.6.7
- Live PHP 版本是 5.6.8-pl0-gentoo
知道为什么会发生这种情况,或者我如何找出问题所在?
尝试启用短标签?
添加
short_open_tag=On
到您的 php.ini 并重新启动 php-fpm 和您的网络服务器。
您的实时服务器未启用 Short Tags。
您可以执行以下操作:
- 更改
- 在 php.ini 中启用短标签
- 在您的 .htaccess 文件中启用短标签
- 使用php ini_set在文件中启用短标签
根据您在实时服务器上对 php.ini、.htaccess 等的访问权限,您需要相应地选择您的解决方案
将您的 Shorttags <?
替换为 <?php
它们并不适用于所有环境。
或者尝试在 php.ini 中打开它们(如果您有权访问它)。