3

Wordpress ファイルを PHP バージョン 5.2.17 を実行しているサーバーにアップロードすると、予期しない T_FUNCTION php エラーが発生します。

テーマは localhost (MAMP を使用) で正常に動作し、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のテーマにのみ使用しています。どんな助けでも本当に感謝しています。

4

3 に答える 3

7

5.3 未満の PHP では無名関数を使用できませ

匿名関数を含まないようにコードを修正し、古いサーバーで動作するようにします。

于 2012-06-04T18:30:23.847 に答える
1

add_action()の 2 番目のパラメータはcallback型です。

5.3 より前では、これは通常、関数を表す文字列です。

add_action('init', 'myFunction');

function myFunction() { echo 'init'; }

create_functionオブジェクトを扱うときに使用する やその他の構文などの代替手段があります。

5.3 以降では、無名関数が許可されます。

add_action('init', function() { echo 'init'; });
于 2012-06-04T18:37:52.437 に答える
-1

PHP 5.3.0 から利用可能な無名関数

于 2012-06-04T18:35:49.180 に答える