stdClass wordpress插件错误

时间:2018-01-25 13:26:21

标签: wordpress

当我访问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;
	}

错误是什么?

5 个答案:

答案 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 );
  • WP_DEBUG(尤其是WP_DEBUG_LOG,尤其是在生产环境或任何可公开访问的网站(例如质量检查/分段)中,不应启用,除非您知道您正在做(其他敏感信息可能会泄露)。

答案 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插件提供。