#php #wordpress
#php #wordpress
Вопрос:
Я выполняю некоторую работу над сайтом WordPress, созданным кем-то другим. Они создали пользовательский плагин, но больше не работают в компании. Плагин загружается на текущий сайт, но не загружается на тестовый сервер, и поэтому очень сложно работать над изменениями.
Загрузка плагина на тестовый сервер выдает ошибку:
Parse error: syntax error, unexpected '{', expecting ')' in wp-content/plugins/uni-todays-program/todays-program.php on line 221
Строка 221 — это:
$query = new WP_Query( [
Окружающий код:
// [today]
function today_func( $atts ) {
// Retrieve current days schedule
$today = getdate();
$query = new WP_Query( [
'post_type' => 'day_entry',
'year' => $today["year"],
'monthnum' => $today["mon"],
'day' => $today["mday"] ,
'post_status' => array('publish', 'pending', 'draft', 'auto-draft', 'future', 'private', 'inherit', 'trash')
] );
$day_type = $query->post->day_type;
$query = new WP_Query( ['post_type' => 'day_type','name' => $day_type] );
return $query->post->post_content;
}
add_shortcode( 'today', 'today_func' );
Я всего лишь пользователь интерфейса, поэтому мой php очень ограничен, но я не вижу проблемы. Нет открытия (
, которое нужно закрыть.
Я поискал в Google и нашел что-то, что указывало на то, что это версия php, но с тех пор я изменил ее, поэтому текущий и тестовый сервер — оба 5.4.
Кто-нибудь может направить меня в правильном направлении?
Комментарии:
1. Что произойдет, если вы измените
post_status
на'post_status' => ['publish', 'pending', 'draft', 'auto-draft', 'future', 'private', 'inherit', 'trash']
?2. Вы абсолютно уверены, что версии
>=5.4
?3. Да, я ‘phpinfo’d это после смены сервера не позволило плагину работать.
Ответ №1:
[]
это краткий синтаксис для объявления массива, он должен работать, если на тестовом сервере установлен php 5.4 или выше.
Если проблема по какой-либо причине не устраняется, попробуйте изменить код на этот:
// [today]
function today_func( $atts ) {
// Retrieve current days schedule
$today = getdate();
$query = new WP_Query( array(
'post_type' => 'day_entry',
'year' => $today["year"],
'monthnum' => $today["mon"],
'day' => $today["mday"] ,
'post_status' => array('publish', 'pending', 'draft', 'auto-draft', 'future', 'private', 'inherit', 'trash')
) );
$day_type = $query->post->day_type;
$query = new WP_Query( array('post_type' => 'day_type','name' => $day_type) );
return $query->post->post_content;
}
add_shortcode( 'today', 'today_func' );
Комментарии:
1. Бум! Это исправлено. Большое спасибо, Сайед! Не уверен, почему это не будет работать на сервере, на котором есть 5.4, но рад, что это работает сейчас.