0

我的一位客户要求我解决他们的 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 支持有关。

由于我没有编写代码或原始网站,因此我希望就如何修补代码以使其正常工作或找到替代代码来创建相同的工作而不会引起问题获得一些支持。

我暂时把代码注释掉了,让网站可以运行。我只是希望有人可能知道这个问题的答案。

任何帮助,将不胜感激

4

1 回答 1

0

ob 结构不必要地复杂..尝试用它替换它。

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;
}
于 2017-01-09T08:56:19.483 回答