【发布时间】:2019-02-18 11:49:54
【问题描述】:
我有一个关于将我的主题文件升级到 PHP 7.1 的快速问题。我知道这很容易做到,但我不懂 PHP。
它目前与 5.3 兼容,这是我主题的两个部分中的唯一错误:“错误 | 自 PHP 5.3 起不推荐使用调用时传递引用,自 PHP 5.4 起禁止使用。”
我会询问我的主题开发人员,但上次他们删除了我所有的自定义 CSS 代码。他们的支持非常糟糕,我不能再相信他们了。
两个问题行都使用此代码setup_postdata( $GLOBALS['post'] =& $post_object );
主题文件 #1:
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
if ( $upsells ) : ?>
<div class="ps-section pb-50">
<div class="ps-container">
<div class="ps-section__header text-center">
<h2 class="ps-section__title"><?php esc_html_e('You may also like…', 'xuper');?></h2>
</div>
<div class="ps-section__content">
<div class="ps-slider--center owl-slider products" data-owl-auto="true" data-owl-loop="true" data-owl-speed="5000" data-owl-gap="30" data-owl-nav="true" data-owl-dots="false" data-owl-item="4" data-owl-item-xs="1" data-owl-item-sm="2" data-owl-item-md="3" data-owl-item-lg="4" data-owl-duration="1000" data-owl-mousedrag="on" data-owl-nav-left="<i class='ps-icon-arrow-left'></i>" data-owl-nav-right="<i class='ps-icon-arrow-right'></i>">
<?php foreach ( $upsells as $upsell ) : ?>
<?php
$post_object = get_post( $upsell->get_id() );
setup_postdata( $GLOBALS['post'] =& $post_object );
wc_get_template_part( 'content', 'product' ); ?>
<?php endforeach; ?>
</div>
</div>
</div>
</div>
`
`
<?php
$post_object = get_post( $related_product->get_id() );
`setup_postdata( $GLOBALS['post'] =& $post_object );
wc_get_template_part( 'content', 'product' ); ?>
<?php endforeach; ?>
</div>
</div>
</div>
</div>
wp_reset_postdata();
感谢您的帮助,我真的很感激!
【问题讨论】:
-
嗨。如果这是与 wordpress 相关的,请将 wordpress 标签添加到您的问题中。
-
我猜它可能是您的
setup_postdata电话中的=&。不过,除了$GLOBALS['post'] =& $post_object; setup_postdata($GLOBALS['post']);之外,还不确定如何修复它。 -
嗨。您发布的错误消息看起来不像标准的 PHP 错误消息。这是运行此代码产生的确切文本吗?或者这是您正在运行以检查代码兼容性的工具的输出?
-
更好的重复将是 stackoverflow.com/questions/8971261/… 或 stackoverflow.com/questions/4665782/… 但问题中的代码实际上并不包含传递引用,这就是为什么我想知道这是否是一个检查工具错误消息。