正在尝试获取以下位置的非对象的属性:$wp_Query

时间:2015-02-14 作者:ReynierPM

我在functions.php 文件:

function custom_secondary_nav( $menu_name, $id = \'\', $menu_title = \'\' )
{
    global $wp_query;

    // others stuff goes here   

    if (is_object($wp_query)) {
        $wpQueryObj = get_object_vars($wp_query);
        if (in_array("queried_object", $wpQueryObj)) {
            $query_name =  $wp_query->queried_object->name !== "" ? $wp_query->queried_object->name : "";
        } 
    }
}
但我一直在收到PHP警告:

PHP注意:试图在/var/www/vhosts/elclarinweb中获取非对象的属性。com/httpdocs/sistema/wp-content/themes/elclarin\\u v2/functions。php第86行

我如何解决这个小问题?

1 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

get_object_vars() 返回对象属性的关联数组-soqueried_object 从不在中$wpQueryObj, 这是一把钥匙:$wpQueryObj[\'queried_object\'].

除此之外,你无论如何都不应该这样做-使用get_queried_object():

if ( $wp_query instanceof WP_Query ) {
    if ( $object = $wp_query->get_queried_object() ) {
         $query_name = isset( $object->name ) ? $object->name : \'\';
    }
}

结束

相关推荐

jquery issue in functions.php

我正在处理的主题中有一个问题,我不知道如何解决它。该主题有几个jquery脚本,需要加载到头部才能工作。如果没有所有这些,主题就失败了。这是我打电话给的人jquery-1.8.2。最小jsjquery-1.6.1。min.jsjquery。放松。1.3。jsjquery-ui-1.8.11。风俗min.jsjquery-ui-1.8.21。风俗最小js现在使用WordPress,我想您可以将jquery排队,然后加载所有版本。我的问题是,当我尝试这样做并删除上面的脚本时,一切都失败了。我将所有脚本放入函数