WordPress类别在页面加载中花费了大量时间

时间:2016-03-08 10:38:37

标签: php wordpress categories

我使用json编码获取我的类别,因此我的格式化数据是json格式,并且该数据正在移动应用程序中使用,目前除了类别之外,每件事情都正常。类别需要8到10秒才能加载。 这是我为完成这项任务而编写的数据

import tarfile
import os

os.mkdir('outdir')
t = tarfile.open('example.tar', 'r')
t.extractall('outdir', members=[t.getmember('README.txt')])
print os.listdir('outdir')

一旦我的所有其他数据(如public function category() { global $post; global $cate_id; if(isset($_GET['category_id'])){ $cat_id = $_GET['category_id']; //$cat = get_category($cat_id); //$cat_name = $cat->slug; $args = array( 'post_type' => 'post', 'posts_per_page' => 10, 'category' => $cat_id //'category_name' => 'cancer-care' ); $posts = get_posts($args); } //print_r($posts); if(!empty($posts)){ foreach ($posts as $post) : setup_postdata( $post ); $post_title = $post->post_title; $post_content = $post->post_excerpt; $post_fullcontent = apply_filters ("the_content", $post->post_content);//$post->post_content; $post_link = get_the_permalink($post->ID); $post_image = wp_get_attachment_url( get_post_thumbnail_id($post->ID) ,'thumbnail_size'); $post_image_thumb = get_bloginfo('template_url').'/thumbs/timthumb.php?src='.$post_image.'&w=438&h=220&zc=1&a=c&q=100'; $category_name = get_cat_name(get_post_meta($post->ID, 'home_page_category', true)); $category_id = get_post_meta($post->ID, 'home_page_category', true); $category_color = categoryCustomFields_GetCategoryCustomField($category_id, 'Color Code'); $category_url = get_category_link(get_post_meta($post->ID, 'home_page_category', true)); //earlier done: echo $totalcount = $this->social_shares($post_link); $result[] = array( 'post_id'=>$post->ID, 'post_title' => $post_title, 'post_short_content' => $post_content, 'post_full_content' => $post_fullcontent, 'post_link' => $post_link, 'post_image' => $post_image, 'post_image_thumb' => $post_image_thumb, 'category_name' => $category_name, 'category_color_code' => $category_color[0]->field_value ? $category_color[0]->field_value : '#83ab44', 'category_id' => $category_id, 'category_url' => $category_url, 'total_social_share' =>$this->social_shares($post_link), 'post_by' =>get_the_author(), 'post_date' =>date('Y-m-d', strtotime($post->post_date)), 'post_time' =>date('H:i:s', strtotime($post->post_date)) ); endforeach; $message = array( "success" => "true", "error" => "null", "post_data" => $result ); echo json_encode(array('response' => $message)); }else{ $message = array( "success" => "false", "error" => "Record not available", "post_data" => "Record not available" ); echo json_encode(array('response' => $message)); } } 功能显示主页帖子,或home_psots功能显示精选帖子等突然显示结果...而不是类别...作为我我得到这样的类别 category?category_id = 4任何想法,这样我可以比这个更快地得到我的数据...... ???我尝试了很多东西,甚至用feature_post文件来重定向到我写的其他函数但是徒劳...... :(

2 个答案:

答案 0 :(得分:0)

引自docs

  

注意:如果不设置偏移参数

,则posts_per_page参数不起作用

也许wordpress正在查询该类别中的所有帖子,而且速度正在放缓。

试试这段代码:

$args = array(
    'post_type' => 'post',
    'posts_per_page' => 10,
    'offset' => 0,
    'category' => $cat_id,
);

请记住,'category'需要类别ID,即整数。

希望它有所帮助!

答案 1 :(得分:0)

这是您的网页加载时间的全部差异。正在加载没有URL参数的其他页面,并且在进一步加载时花费的时间更少。当使用磁盘增强页面缓存方法时,W3 Total Cache Plugin不会缓存基于查询的URis。这就是为什么基于查询的页面没有被缓存的原因以及每次加载页面时都会再次获取它并花费时间。希望你明白这一点,为了使它缓存你可以应用其他技术,比如你可以创建类别页面并缓存那个页面,你可以在那里显示所需的类别等。如需进一步阅读,这里是插件作者自己的另一个回复{{3} } 希望现在有意义。