当我访问wordpress dashbord以安装新插件时,会出现错误
第150行的/var/sentora/hostdata/websitenligne/public_html/sme2/wp-includes/class-wp-list-util.php中的stdClass :: $ plugin
public function pluck( $field, $index_key = null ) {
if ( ! $index_key ) {
/*
* This is simple. Could at some point wrap array_column()
* if we knew we had an array of arrays.
*/
foreach ( $this->output as $key => $value ) {
if ( is_object( $value ) ) {
$this->output[ $key ] = $value->$field;
} else {
$this->output[ $key ] = $value[ $field ];
}
}
return $this->output;
}
/*
* When index_key is not set for a particular item, push the value
* to the end of the stack. This is how array_column() behaves.
*/
$newlist = array();
foreach ( $this->output as $value ) {
if ( is_object( $value ) ) {
if ( isset( $value->$index_key ) ) {
$newlist[ $value->$index_key ] = $value->$field;
} else {
$newlist[] = $value->$field;
}
} else {
if ( isset( $value[ $index_key ] ) ) {
$newlist[ $value[ $index_key ] ] = $value[ $field ];
} else {
$newlist[] = $value[ $field ];
}
}
}
$this->output = $newlist;
return $this->output;
}
错误是什么?
答案 0 :(得分:1)
本文为我提供了一些很好的示例,说明如何解决问题https://www.thetwopercent.co.uk/wordpress-error-solved-notice-undefined-property-stdclass-plugin/ 而您发现女巫插件的方式导致了问题,就是将此代码放在该函数上,以使插件与外壳一起出现问题,如果插件引起了问题,则将是结果isvalidEmpty:1。
public function pluck( $field, $index_key = null ) {
$newlist = array();
if ( ! $index_key ) {
/*
* This is simple. Could at some point wrap array_column()
* if we knew we had an array of arrays.
*/
foreach ( $this->output as $key => $value ) {
if ( is_object( $value ) ) {
//this code to ouput the plugin that causing the problem
echo('<div style="margin-left: 251px;">' );
echo('<p>is object</p>' );
echo('<h2 style="margin-left: 400px;">'.(string) $key."</h2>
<br/>" );
echo('<h2 style="margin-left: 251px;"> field:'. $field."</h2>
<br/>" );
echo('<h2 style="margin-left: 251px;">
isvalidEmpty:'.empty($value->$field)."</h2><br/>" );
echo('</div>' );
答案 1 :(得分:0)
尝试通过以下方式更新您的wordpress:信息中心 - &gt;更新 如果您有最新版本,请尝试重新安装它,您的问题将得到解决
答案 2 :(得分:0)
尝试更新所有具有可用更新的插件。那解决了我的问题。
答案 3 :(得分:0)
此问题似乎首先出现在introduced in version 4.7上,原因是wp-includes/class-wp-list-util.php
没有检查是否设置了对象属性。
在WordPress 5.2.1中看起来is still present(在本文发布时为最新)。 152行应类似于:
$this->output[ $key ] = isset( $value->$field ) ? $value->$field : null;
无论如何... 要删除此警告,请编辑您的wp-config.php
并进行以下更改:
define( 'WP_DEBUG', true );
...对此(或将WP_DEBUG
行全部注释掉):
define( 'WP_DEBUG', false );
或者,如果您想使WP_DEBUG保持启用状态,但将其输出限制为wp-content/debug.log
,则可以添加以下内容:
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
答案 4 :(得分:0)
转到/wp-includes/class-wp-list-util.php 找到公共函数的pluck函数,然后替换此部分。
foreach ( $this->output as $key => $value ) {
if ( is_object( $value ) ) {
if(isset($value->$field)){
$newlist[ $key ] = $value->$field;
}
如果以后再更新wordpress肯定不能这样做,但是您在这里更新核心是因为您必须这样做,并且别无选择,不是因为您想这样做。由elementor插件提供。