2012-06-04 53 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