Один из моих клиентов попросил меня выяснить, почему на их веб-сайте WordPress возникают проблемы с загрузкой.
Их сайт был создан другим разработчиком и больше не ведет дела с моим клиентом, поэтому проблема в том, чтобы обратиться к ним за помощью.
Когда я изучал причину, я обнаружил следующую ошибку PHP:
[09-Jan-2017 04:09:52 UTC] PHP Fatal error: Can't use function return value in write context in /home/*********/public_html/fr/wp-content/themes/********/functions.php on line 121
Просматривая файл functions.php, я нашел следующий код:
function bs_get_hreflang_tags() {
ob_start();
if( !empty( get_field('australia', get_the_ID() ) ) ) : ?>
<link rel="alternate" href="<?php echo esc_url( get_field('australia', get_the_ID() ) ); ?>" hreflang="en-au" />
<?php endif;
if( !empty( get_field('france', get_the_ID() ) ) ) : ?>
<link rel="alternate" href="<?php echo esc_url( get_field('france', get_the_ID() ) ); ?>" hreflang="fr"/>
<?php endif;
if( !empty( get_field('spain', get_the_ID() ) ) ) : ?>
<link rel="alternate" href="<?php echo esc_url( get_field('spain', get_the_ID() ) ); ?>" hreflang="es" />
<?php endif;
if( !empty( get_field('italy', get_the_ID() ) ) ) : ?>
<link rel="alternate" href="<?php echo esc_url( get_field('italy', get_the_ID() ) ); ?>" hreflang="it" />
<?php endif;
$output = ob_get_contents();
ob_end_clean();
return $output;
}
РЕДАКТИРОВАТЬ: строка 121 if( !empty( get_field('australia', get_the_ID() ) ) ) : ?>
Я не до конца понимаю, что делает этот код, но считаю, что он в основном связан с многоязычной поддержкой SEO.
Поскольку я не писал код или оригинальный веб-сайт, я надеялся получить некоторую поддержку о том, как либо пропатчить код, чтобы он работал, либо найти альтернативный код для создания той же работы, не вызывая проблем.
Я закомментировал код на данный момент, чтобы сайт мог работать. Я просто надеялся, что кто-то может знать ответ на этот вопрос.
Любая помощь будет оценена
Обь конструирование излишне сложно ..
Попробуйте заменить это этим.
function bs_get_hreflang_tags() {
$output= '';
if( get_field('australia', get_the_ID() ) ) :
$output = '<link rel="alternate" href="'.esc_url( get_field('australia', get_the_ID() ) ) . '" hreflang="en-au" />';
elseif( get_field('france', get_the_ID() ) ) :
$output = '<link rel="alternate" href="'.esc_url( get_field('france', get_the_ID() ) ) . '" hreflang="fr" />';
elseif( get_field('spain', get_the_ID() ) ) :
$output = '<link rel="alternate" href="'.esc_url( get_field('spain', get_the_ID() ) ) . '" hreflang="es" />';
elseif( get_field('italy', get_the_ID() ) ) :
$output = '<link rel="alternate" href="'.esc_url( get_field('italy', get_the_ID() ) ) . '" hreflang="it" />';
endif;
return $output;
}
Других решений пока нет …