StdClass::$Labels/wp-Includes/General-template.php未定义

时间:2013-03-18 作者:Jimbo

在我的<title> 我收到的标签undefined 在自定义帖子类型的自定义分类法上,我正在努力找到一种方法来设置它。

<title><br />
<b>Notice</b>:  Undefined property: stdClass::$labels in <b>/www/public_html/lib/wp-includes/general-template.php</b> on line <b>658</b><br />
<br />
<b>Notice</b>:  Trying to get property of non-object in <b>/www/public_html/lib/wp-includes/general-template.php</b> on line <b>658</b><br />
{custom_taxonomy_term} - {sitename}</title>
调用的URL为:http://domain.com/{custom_post_type}/{custom_taxonomy}/{custom_taxonomy_term}/

为其提供服务的主题页是:archive-{custom_post_type}.php

它没有为存档页向我提供自定义的帖子类型,因此它会发出一个空白通知。不确定是否有办法强制执行,或者是否应该使用不同的主题页。我用它来过滤自定义帖子类型上的分类术语。

中的函数general-template.phppost_type_archive_title 应用过滤器时post_type_archive_title$post_type_obj->labels->name; 这是未定义的部分。

我希望标题是{custom_term} - {custom_taxonomy} - {custom_post_type} - {sitename}.

编辑:

在标题中。php我使用的是通常的<title><?php wp_title( \'\' ); ?></title> 并已禁用Wordpress SEO插件,但仍然存在相同问题。

对分类术语使用自定义重写rewrite => falseregister_taxonomy:

add_rewrite_rule( 
        \'{custom_post_type}/{custom_taxonomy}/([^/]+)/?$\',
        \'index.php?post_type={custom_post_type}&{custom_taxonomy}=$matches[1]\',
        \'top\');

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

通过编写以下变通方法,我成功地修复了这个未定义的$标签。这是我希望它如何工作的习惯,但它可能会给其他人一个如何让它为他们工作的指针。当Wordpress可以使用两种类型为其页面提供服务并感到困惑时,就会出现这种情况。说明所提供的页面是否可以是归档页面或标记页面(当然是自定义页面)。现在还不确定该用哪种方式来满足这个请求,所以标题就被取消了。所以我告诉它:

add_action( \'parse_query\', \'my_custom_parse_query\' );

function my_custom_parse_query( $wp_query ) { 
    global $post_type_obj;

    if ( $wp_query->is_post_type_archive && $wp_query->is_tax ) {

        $term = \'\';

        if( get_query_var(\'post_type\') == \'my_post_type_1\' ){

            $tax1 = get_query_var(\'custom_tax1\');

            $tax2 = get_query_var(\'custom_tax2\');

            $tax3 = get_query_var(\'custom_tax3\');

            if(!empty($tax1)){

                $term = get_term_by( \'slug\', $tax1, \'custom_tax1\' );

            }else if(!empty($tax2)){

                $term = get_term_by( \'slug\', $tax2, \'custom_tax2\' );

            }else if(!empty($tax3)){

                $term = get_term_by( \'slug\', $tax3, \'custom_tax3\' );

            }

            if( !empty($term) ){

                $post_type_obj = get_queried_object();

            if (empty($post_type_obj->labels)) {
                $post_type_obj->labels = new stdClass();
                $post_type_obj->labels->name = $term->name . \' - \' . get_bloginfo(\'name\');
            }

            }

        }else{

            $post_type_obj = get_queried_object();

        if (empty($post_type_obj->labels)) {
            $post_type_obj->labels = new stdClass();
            $post_type_obj->labels->name = $term->name;
        }

        }
    }
}

结束

相关推荐

十二压延机小工具<a title="">post titles</a>制造骚乱

在我修改过的二十一主题中,当我悬停在日历小部件的日期上时,有一个类似气球的首字母缩略词,显示该日期的帖子标题。事实上,这是一个锚定标题:<td> <a href=\"http://www.example.com/2013/01/23/\" title=\"post title 1<br/>post title 2<br/>\">23</a> </td> 所以当我徘徊在第23天时,它就像一个缩略词:&#x

StdClass::$Labels/wp-Includes/General-template.php未定义 - 小码农CODE - 行之有效找到问题解决它

StdClass::$Labels/wp-Includes/General-template.php未定义

时间:2013-03-18 作者:Jimbo

在我的<title> 我收到的标签undefined 在自定义帖子类型的自定义分类法上,我正在努力找到一种方法来设置它。

<title><br />
<b>Notice</b>:  Undefined property: stdClass::$labels in <b>/www/public_html/lib/wp-includes/general-template.php</b> on line <b>658</b><br />
<br />
<b>Notice</b>:  Trying to get property of non-object in <b>/www/public_html/lib/wp-includes/general-template.php</b> on line <b>658</b><br />
{custom_taxonomy_term} - {sitename}</title>
调用的URL为:http://domain.com/{custom_post_type}/{custom_taxonomy}/{custom_taxonomy_term}/

为其提供服务的主题页是:archive-{custom_post_type}.php

它没有为存档页向我提供自定义的帖子类型,因此它会发出一个空白通知。不确定是否有办法强制执行,或者是否应该使用不同的主题页。我用它来过滤自定义帖子类型上的分类术语。

中的函数general-template.phppost_type_archive_title 应用过滤器时post_type_archive_title$post_type_obj->labels->name; 这是未定义的部分。

我希望标题是{custom_term} - {custom_taxonomy} - {custom_post_type} - {sitename}.

编辑:

在标题中。php我使用的是通常的<title><?php wp_title( \'\' ); ?></title> 并已禁用Wordpress SEO插件,但仍然存在相同问题。

对分类术语使用自定义重写rewrite => falseregister_taxonomy:

add_rewrite_rule( 
        \'{custom_post_type}/{custom_taxonomy}/([^/]+)/?$\',
        \'index.php?post_type={custom_post_type}&{custom_taxonomy}=$matches[1]\',
        \'top\');

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

通过编写以下变通方法,我成功地修复了这个未定义的$标签。这是我希望它如何工作的习惯,但它可能会给其他人一个如何让它为他们工作的指针。当Wordpress可以使用两种类型为其页面提供服务并感到困惑时,就会出现这种情况。说明所提供的页面是否可以是归档页面或标记页面(当然是自定义页面)。现在还不确定该用哪种方式来满足这个请求,所以标题就被取消了。所以我告诉它:

add_action( \'parse_query\', \'my_custom_parse_query\' );

function my_custom_parse_query( $wp_query ) { 
    global $post_type_obj;

    if ( $wp_query->is_post_type_archive && $wp_query->is_tax ) {

        $term = \'\';

        if( get_query_var(\'post_type\') == \'my_post_type_1\' ){

            $tax1 = get_query_var(\'custom_tax1\');

            $tax2 = get_query_var(\'custom_tax2\');

            $tax3 = get_query_var(\'custom_tax3\');

            if(!empty($tax1)){

                $term = get_term_by( \'slug\', $tax1, \'custom_tax1\' );

            }else if(!empty($tax2)){

                $term = get_term_by( \'slug\', $tax2, \'custom_tax2\' );

            }else if(!empty($tax3)){

                $term = get_term_by( \'slug\', $tax3, \'custom_tax3\' );

            }

            if( !empty($term) ){

                $post_type_obj = get_queried_object();

            if (empty($post_type_obj->labels)) {
                $post_type_obj->labels = new stdClass();
                $post_type_obj->labels->name = $term->name . \' - \' . get_bloginfo(\'name\');
            }

            }

        }else{

            $post_type_obj = get_queried_object();

        if (empty($post_type_obj->labels)) {
            $post_type_obj->labels = new stdClass();
            $post_type_obj->labels->name = $term->name;
        }

        }
    }
}

相关推荐

WP_SET_POST_TERMS()似乎非常慢

正常吗wp_set_post_terms() 非常慢?什么时候wp_insert_post() 大约需要1秒。添加4wp_set_post_terms() 操作前7-10秒。伪代码示例:$values = [\'value_1\', \'value_2\', \'value_3\', \'value_4\', \'value_5\', \'value_6\']; $post_id = \'1234\'; $taxonomy = \'offerings\'; wp