2012-03-03 3 views
1

В настоящее время я изучаю WordPress и хочу создать собственный тип сообщения и скопировать код из учебника, за которым я следую. Код в учебнике работает, но когда я копировать/вставить его в шаблон пользовательских страниц, я получаю следующее сообщение об ошибке:Добавление типов сообщений WP: ошибка синтаксиса: ошибка синтаксиса, неожиданный T_FUNCTION

"Parse error: syntax error, unexpected T_FUNCTION in /home/databasename/public_html/wptheme/demo/wp-content/themes/name/albums.php on line 3"

Я гугл вопроса в течение нескольких часов, и есть несколько вариантов, но проблема в том, что я новичок и не знаю точно, что менять. Я знаю, что проблема в третьей строке, но все. Ниже показан мой код, который находится в моем настраиваемом шаблоне страницы. Любая помощь будет принята с благодарностью!

<?php 

    add_action('init', function() { /*this is line 3*/ 
    register_post_type('album', array(
     'public' => true, 
     'label' => 'Album', 
     'labels' => array('add_new_item' => 'Add New Album') 
     'supports' => array('title', 'editor'), 
     'taxonomies' => array('post_tag') 
    )); 
}); 
+1

кажется, где этот код работает, они не используют PHP 5.3. Лямбда-функции доступны только с тех пор. –

+0

какая версия php включена? –

+0

Возможно, вы используете версию PHP (<5.3), которая еще не поддерживает анонимные функции, используя 'function() {}' - вместо этого вам придется использовать 'create_function()' или обновить –

ответ

0

Вы работаете устаревшую версию PHP, то есть PHP < 5.3, который не поддерживает anonymous functions, которые используются в этом коде.

Хотя вы могли бы переписать код для использования именованной функции или create_function, вам действительно нужно просто обновить вашу установку php до версии с этого десятилетия. php 5.2 (или даже более старые версии) - not supported anymore и поэтому небезопасен.

Кроме того, ваш код отсутствует запятая в конце одной из линий:

'labels' => array('add_new_item' => 'Add New Album') 
//              ^^ 
+0

Я тестирую сайт на реальном сервере (Hostgator), и если я не ошибаюсь, они используют PHP 5.3, но я могу ошибаться. –

+0

По какой-то причине, люди в хосгаторе запускают полностью устаревшую версию php. [Здесь есть статья о том, как перейти на 5.3] (http://support.hostgator.com/articles/pre-sales-questions/php-5-3). Я бы также подумал о том, чтобы переключить хостинг на службу, которая поддерживает поддерживаемые версии php по умолчанию, и позволяет использовать современные, такие как php 5.4. – phihag

+0

Спасибо, Фигаг за вашу помощь. Не могли бы вы рассказать мне, как это возможно, я могу использовать любую тему WordPress на этом сервере, но не свою тему? –

Смежные вопросы