【问题标题】:i need to get post, featured image with specific category id wordpress by custom query我需要通过自定义查询获取具有特定类别 id wordpress 的帖子、特色图片
【发布时间】:2017-09-24 20:08:27
【问题描述】:

我需要通过自定义查询在 wordpress 中获取具有特定类别 ID 的帖子和特色图片。这是我的查询:

SELECT p.ID, post_title AS title, post_excerpt AS excerpt,t.name AS name_cat ,bb.meta_value AS url_image FROM ap_posts p 
LEFT JOIN ( 
    SELECT p1.ID,wm2.meta_value FROM ap_posts p1 
    LEFT JOIN ap_postmeta wm1 ON ( wm1.post_id = p1.id AND wm1.meta_value IS NOT NULL AND wm1.meta_key = '_thumbnail_id' ) 
    LEFT JOIN ap_postmeta wm2 ON ( wm1.meta_value = wm2.post_id AND wm2.meta_key = '_wp_attached_file' AND wm2.meta_value IS NOT NULL ) ) AS bb ON p.ID = bb.ID 
    JOIN ap_term_relationships tr ON (p.ID = tr.object_id) 
    JOIN ap_term_taxonomy tt ON (tr.term_taxonomy_id = tt.term_taxonomy_id) 
    JOIN ap_terms t ON (tt.term_id = t.term_id) WHERE p.post_type='post' AND p.post_status = 'publish' AND tt.taxonomy = 'category' AND t.term_id =$cat_id ORDER BY post_date DESC 

结果还可以,但运行缓慢,因为我使用了很多“JOIN”。如何优化此 sql 以提高性能。谢谢

【问题讨论】:

标签: mysql wordpress performance


【解决方案1】:

试试这个代码。,

$args = array(
'post_type'=>'posttype',
    'tax_query' => array(
        array(
            'taxonomy' => 'person', //taxonomy name
            'field' => 'name',  //category field
            'terms' => 'bob'   //category name 
        )
    )
);
$query = new WP_Query( $args );
$post_testimonials = $query->posts;
 $image= wp_get_attachment_image_src(get_post_thumbnail_id($post_testimonials[0]->ID),'full');
var_dump($image);

使用关于代码 $image 变量给出特色图片的 URL。循环帖子将进入查询。

【讨论】:

    【解决方案2】:

    ap_postmeta 上,将PK 更改为PRIMARY KEY(post_id, meta_key)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-20
      • 2022-11-24
      • 2016-08-10
      • 2021-12-26
      • 2016-01-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多