2012-06-04 52 views
3

我“米上传我的WordPress文件到服务器上运行PHP版本5.2.17后却得到了意想不到T_FUNCTION PHP错误。意外T_FUNCTION用PHP 5.2.17,但罚款本地主机和PHP 5.3.10

主题作品精对本地主机(含甲基苯丙胺),也有我自己的服务器上没有错误,它运行PHP版本5.3.10。

什么可能是错误的,或者可以做些什么来解决这个问题?

这是导致错误的行:

add_action('init', function() use($name, $args) { 

和整个functions.php文件看起来是这样的:

<?php 

/* Add Post Type */ 
function add_post_type($name, $args = array()) { 
    if (!isset($name)) return; 

    $name = strtolower(str_replace(' ', '_', $name)); 

    add_action('init', function() use($name, $args) { 
     $args = array_merge(
      array(
       'label' => 'Members ' . ucwords($name) . '', 
       'labels' => array('add_new_item' => "Add New $name"), 
       'singular_name' => $name, 
       'public' => true, 
       'supports' => array('title', 'editor', 'comments'), 
      ), 
      $args 
     ); 

     register_post_type($name, $args); 
    }); 
} 


add_post_type('Netherlands', array(
    'supports' => array('title', 'editor', 'thumbnail', 'comments') 
)); 


add_post_type('Belgium', array(
    'supports' => array('title', 'editor', 'thumbnail', 'comments') 
)); 

    add_post_type('Germany', array(
    'supports' => array('title', 'editor', 'thumbnail', 'comments') 
)); 

    add_post_type('France', array(
    'supports' => array('title', 'editor', 'thumbnail', 'comments') 
)); 

    add_post_type('United-Kingdom', array(
    'supports' => array('title', 'editor', 'thumbnail', 'comments') 
)); 

    add_post_type('Ireland', array(
    'supports' => array('title', 'editor', 'thumbnail', 'comments') 
)); 

    add_post_type('Spain', array(
    'supports' => array('title', 'editor', 'thumbnail', 'comments') 
)); 

    add_post_type('Portugal', array(
    'supports' => array('title', 'editor', 'thumbnail', 'comments') 
)); 

    add_post_type('Italy', array(
    'supports' => array('title', 'editor', 'thumbnail', 'comments') 
)); 

我真的很新的PHP,仅使用WordPress的主题化。任何帮助真的很感激。

回答

7

不能在PHP小于5.3

匿名函数返工你的代码,以便它不涉及匿名函数,它应该您的旧服务器上运行。

1
add_action()

的第二个参数的匿名函数是callback类型。

预5.3,这通常是表示函数的字符串:

add_action('init', 'myFunction'); 

function myFunction() { echo 'init'; } 

有替代品,如create_function和其他语法与对象处理时使用。

5.3起,匿名函数被允许:

add_action('init', function() { echo 'init'; }); 
+0

感谢所有的信息,我会问,如果旧的主机可以使用的版本5.3.x支持annonymus功能。 – NielsPilon