我在尝试激活本地主机上的自定义插件时出现此错误,我有一个运行php 5.2的网站的工作副本,其中不会发生此问题。
本地主机: PHP版本5.5.14
这是令人讨厌的片段,在最后一行:
...
// Widget Backend
public function form( $instance ) {
if ( isset( $instance[ 'title' ] ) ) {
$title = $instance[ 'title' ];
} else {
$title = __( 'Delivery', 'delivery_widget_domain' );
}
if (isset($instance['sub_title'])){
$sub_title = $instance['sub_title'];
} else {
$sub_title = __('escolha uma categoria', 'delivery_widget_domain');
}
// Widget admin form
?>
<p>
<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?></label>
<input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
</p>
<p>
<label for="<?php echo $this->get_field_id('sub_title'); ?>"><?php _e('Sub Título:'); ?></label>
<input class="widefat" id="<?php echo $this->get_field_id('sub_title');?>" name="<?php echo $this->get_field_name('sub_title'); ?>" type="text" value="<?php echo esc_attr($sub_title); ?>" />
</p>
<?php
} // <----- this line
...
为什么会这样?
编辑:粘贴文件的bin,错误在第55行 http://pastebin.com/hHxnfsDA
error message ( ! ) Parse error: parse error in /.../widgets/delivery.php on line 55
Call Stack
# Time Memory Function Location
1 0.0013 391472 {main}( ) ../plugins.php:0
2 0.8336 47175152 plugin_sandbox_scrape( ) ../plugins.php:153
3 0.8337 47177328 include( '/.../plugins/portalsabores-plugin/portalsabores-plugin.php' ) ../plugins.php:151
和cli:
Parse error: syntax error, unexpected '}' in Sites/portalsabores/wp-content/plugins/portalsabores-plugin/widgets/delivery.php on line 55
答案 0 :(得分:1)
如果要在文件的其余部分中打开<?php
,则第一个PHP标记(Pastebin文件的第1行)需要为<?
(而不是<?php
)。 / p>
看看这个测试脚本:
<?
if (true)
{
?>
<?
}
if (true)
{
?>
<?php
}
?>
此测试脚本的在线评估:http://3v4l.org/tg8SU
当您使用<?
第5行打开PHP代码时,PHP按预期工作,但它会在第12行检测到解析错误。
答案 1 :(得分:0)
如果您不在课堂内,请删除&#34; public&#34;来自&#34;公共职能形式&#34;。