(我已经在普通的堆栈交换上发布了这个,但有人建议我也把它放在这里。很高兴知道这个地方存在…:)
所以,我一直在互联网上寻找我拥有的几个网站的情况,我想我终于能够找到它了。。。
但是
在去Wordpress之前,我想首先确保我做的一切都正确,并建议有一个小bug正在给我和其他很多人带来各种各样的烦恼。
问题的症结在于,我有多个Wordpress(WP 3.5.1)网站,上面有一个自定义的帖子类型“products”。我对自定义帖子类型的定义如下:
/* Create custom Products taxonomy */
function create_custom_products_taxonomies() {
register_post_type( \'products\',
array(
\'labels\' => array(
\'name\' => __( \'Products\' ),
\'singular_name\' => __( \'Product\' ),
\'add_new\' => __( \'Add New\' ),
\'add_new_item\' => __( \'Add New Product\' ),
\'edit\' => __( \'Edit\' ),
\'edit_item\' => __( \'Edit Product\' ),
\'new_item\' => __( \'New Product\' ),
\'view\' => __( \'View Product\' ),
\'view_item\' => __( \'View Product\' ),
\'search_items\' => __( \'Search Products\' ),
\'not_found\' => __( \'No products found\' ),
\'not_found_in_trash\' => __( \'No products found in Trash\' ),
\'parent\' => __( \'Parent Product\' )
),
\'public\' => true,
\'hierarchical\' => true,
\'menu_position\' => 20,
\'publicly_queryable\' => true,
\'query_var\' => true,
\'rewrite\' => array("slug" => "/products", "with_front" => false),
\'supports\' => array(\'title\', \'author\', \'thumbnail\', \'editor\', \'excerpt\', \'comments\', \'page-attributes\', \'common\', \'custom-fields\', \'revisions\'),
\'register_meta_box_cb\' => \'products_meta_box\',
\'taxonomies\' => array(\'products\')
)
);
register_taxonomy(
\'products\',
\'products\',
array(
\'hierarchical\' => true,
\'label\' => __(ucfirst(\'products\')),
\'show_in_nav_menus\' => true,
\'rewrite\' => array(\'slug\' => \'categories\')
)
);
}
add_action(\'init\', \'create_custom_products_taxonomies\'); // Create the necessary custom taxonomies for products
问题出现在我试图访问该自定义帖子类型的列表页面的地方。类似的贴子页面是管理页面左侧管理侧栏中的“贴子”。我自定义帖子类型列表的页面名称是“Products”,这一点很恰当。访问该页面时,需要一段文字时间才能加载。好的,从一个页面加载到另一个页面加载大约需要8-12秒,管理端的任何其他页面都将在大约1-2秒内加载。此外,该页面将经常超时并抛出关于“服务暂时不可用”的一般错误。(不确定此错误来自何处。Apache、Wordpress等)
这种异常行为导致我尝试调试网站的管理端。我找到了插件“Debug Bar”和“Debug Bar Extender”。依次使用这些插件,并在加载适当的页面后,我可以查看该页面的查询,但在这种情况下,查询参数是更重要的比较:
--对于帖子列表页面--
post\\U type=post&;posts\\u per\\u page=400
产品列表页--
订单=asc(&A);orderby=菜单\\u顺序+标题(&U);post\\u类型=产品(&U);posts_per_page=-1&;posts\\u per\\u archive\\u页面=-1
在这种情况下,“帖子”页面上显示的帖子数量(在页面顶部的屏幕选项选项卡中设置)设置为400。看起来不错。
但是,要显示的产品数量(以相同的方式设置,但在产品页面上)已设置为25。不管这一事实如何,Products页面(如上所示)的posts\\u per\\u page查询参数设置为-1,这意味着Wordpress正在使用我的自定义帖子类型“Products”获取所有帖子,但随后仅显示所需的25。对于与我的产品列表关联的多个页面(分页),这种情况以相同的方式发生。
我觉得这是假的。因此,我的问题是:我是否错误地设置(注册)了自定义帖子类型?当我禁用网站上的所有其他插件时,我看到了同样的行为,我只使用register\\u post\\u type函数来设置这个自定义的post类型。如果这里发生了什么错误,(在我看来),我会向Wordpress报告。如果不是,尽管。。。我不想不必要地“窃听”他们
我在多个网站上看到过这种行为,但在这个网站上管理员页面加载时间对我来说很长的原因是因为我有3k多个带有这种自定义帖子类型的帖子,而在其他使用我的自定义帖子类型注册码的网站上只有大约300-400个产品。
感谢所有愿意提供帮助和/或评论的人。