WordPress仪表板,在504中查看CPT结果

时间:2013-04-22 作者:NW Tech

我创建了一个带有自定义分类法的自定义帖子类型。我有大约1500篇帖子,所有这些帖子都被分配给某种分类术语。。。一些被分配到200多个术语。

我注意到,从仪表板上查看自定义帖子类型需要非常长的时间,大多数时间导致504网关超时。

从前端查询这些帖子很好,我对此没有任何问题。

我的理解是,当仪表板试图查看这些自定义帖子类型时,它试图在显示所有内容之前提取分配给每个帖子的所有信息。

我确实有这个WP安装设置,可以根据需要使用尽可能多的内存(memory\\u limit=-1),正如我所研究的,一些人说它可能与内存有关。

是否有什么可以提高此查询的性能。。。在编辑帖子之前,可能不会加载帖子的所有分类术语关系?

Errors after increasing WP_MEMORY_LIMIT from 1Gb to 2Gb:

WordPress database error: [MySQL client ran out of memory]
SELECT t.*, tt.*, tr.object_id FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN (\'locations\') AND tr.object_id IN

WordPress database error: [Lost connection to MySQL server during query]
SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN

WordPress database error: [MySQL server has gone away]
SELECT DISTINCT YEAR( post_date ) AS year, MONTH( post_date ) AS month FROM wp_posts WHERE post_type = \'services\' ORDER BY post_date DESC

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

CPT和分类术语是通过插件创建的。我可以通过在插件中添加以下内容来减少查询:

add_action( \'pre_get_posts\', \'nwtd_lpfs_custom_admin_query\' );
function nwtd_lpfs_custom_admin_query( $query ) {
    if( !is_admin() && !$query->is_main_query() ) {
         return;
     }
     if( is_post_type_archive( \'services\' ) ) {
          $query->set(\'no_found_rows\', 1 );
          $query->set(\'update_post_meta_cache\', 0 );
          $query->set(\'update_post_term_cache\', 0 );
     }
}
到目前为止,我有700多篇文章与1500多个分类术语相关联,一切都很好。这些帖子几乎是即时出现的。

**我没有写这段代码。我直接与之合作的人,不是WordPress Answers社区的一员,提供了代码——也许它可以帮助其他人,或者其他人可以扩展它以提高效率**

结束

相关推荐

Remove Widgets in Dashboard

另一个noob问题。。。当作者登录并访问其仪表板时,他们会看到各种小部件,例如Internet Explorer警告、WordPress动态新闻。是否要为所有用户(现在和将来)删除所有这些内容,以便他们只看到“快速按”&;\'现在的小部件?谢谢