2017-01-09 2 views
0

У меня один из моих клиентов попросил устранить неполадки, почему у их веб-сайта Wordpress возникают проблемы с загрузкой. Их сайт был создан другим разработчиком и больше не занимается бизнесом с моим клиентом, поэтому поиск помощи у них - проблема.Проблемы с функцией hreflang php на многоязычном сайте

Когда я расследовал причину я нашел следующую ошибку: 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; 
} 

EDIT: линия 121 - if(!empty(get_field('australia', get_the_ID()))) : ?>

Я не совсем понимаю, что делает этот код, но я считаю, что это в основном связано к многоязычной поддержке SEO.

Поскольку я не писал код или оригинальный сайт, я надеялся получить некоторую поддержку в том, как либо исправлять код, чтобы он работал, либо находил альтернативный код для создания той же самой работы, не вызывая проблем.

Я прокомментировал код на данный момент, чтобы разрешить запуск сайта. Я просто надеялся, что кто-то может знать ответ на этот вопрос.

Любая помощь будет оценена

+0

Какая линия 121? – janw

+0

К сожалению, забыл добавить это. "if (! empty (get_field ('australia', get_the_ID()))):?>" –

ответ

0

Обское строительство неоправданно сложно .. Попробуйте заменить его с этим.

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; 
} 
+0

К сожалению, я по-прежнему получаю ту же ошибку. –

+0

Прекрасное спасибо. Является ли проблема из-за того, что пустое не было оценено правильно или как были построены инструкции if или немного? Извините, я просто надеюсь узнать больше о проблеме. –

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