Snippets

Willy Bahuaud Récupérer un article ayant une image à la une d’une certaine dimension

Updated by Willy Bahuaud

File thsize-query-request-filters.php Modified

  • Ignore whitespace
  • Hide word diff
         $th_size_serialized = serialize( $th_size );
     
         global $wpdb;
-        $where .= " AND th_id.meta_key = '_thumbnail_id';";
+        $where .= " AND th_id.meta_key = '_thumbnail_id'";
         $where .= " AND th_meta.meta_key = '_wp_attachment_metadata'";
         $where .= " AND th_meta.meta_value LIKE '%{$th_size_serialized}%'";
     }
Updated by Willy Bahuaud

File thsize-query-request-filters.php Modified

  • Ignore whitespace
  • Hide word diff
     return $vars;
 }
 
-add_filter( 'posts_join', 'thsize_join_clauses' );
-function thsize_join_clauses( $join ) {
+add_filter( 'posts_join', 'thsize_join_clauses', 10, 2 );
+function thsize_join_clauses( $join, $q ) {
     if ( isset( $q->query_vars['thsize'] ) ) {
         global $wpdb;
         $join .= " INNER JOIN {$wpdb->postmeta} as th_id ON {$wpdb->posts}.ID = th_id.post_id";
Created by Willy Bahuaud

File demo-query.sql Added

  • Ignore whitespace
  • Hide word diff
+SELECT jm_posts.* FROM jm_posts 
+INNER JOIN jm_postmeta as thid ON jm_posts.ID = thid.post_id 
+INNER JOIN jm_postmeta as thmeta ON thmeta.post_id = thid.meta_value 
+WHERE 1 = 1
+AND thid.meta_key = '_thumbnail_id'
+AND thmeta.meta_key = '_wp_attachment_metadata'
+AND thmeta.meta_value LIKE '%s:7:"grid170";%'
+LIMIT 10

File thsize-query-request-filters.php Added

  • Ignore whitespace
  • Hide word diff
+<?php
+
+add_filter( 'query_vars', 'thsize_query_vars' );
+function thsize_query_vars( $vars ) {
+    $vars[] = 'thsize';
+    return $vars;
+}
+
+add_filter( 'posts_join', 'thsize_join_clauses' );
+function thsize_join_clauses( $join ) {
+    if ( isset( $q->query_vars['thsize'] ) ) {
+        global $wpdb;
+        $join .= " INNER JOIN {$wpdb->postmeta} as th_id ON {$wpdb->posts}.ID = th_id.post_id";
+        $join .= " INNER JOIN {$wpdb->postmeta} as th_meta ON th_meta.post_id = th_id.meta_value";
+    }
+    return $join;
+}
+
+add_filter( 'posts_where', 'thsize_where_clauses', 10, 2 );
+function thsize_where_clauses( $where, $q ) {
+    if ( isset( $q->query_vars['thsize'] ) ) {
+        $th_size = $q->query_vars['thsize'];
+        $th_size_serialized = serialize( $th_size );
+    
+        global $wpdb;
+        $where .= " AND th_id.meta_key = '_thumbnail_id';";
+        $where .= " AND th_meta.meta_key = '_wp_attachment_metadata'";
+        $where .= " AND th_meta.meta_value LIKE '%{$th_size_serialized}%'";
+    }
+    return $where;
+}

File thsize-request-sample.php Added

  • Ignore whitespace
  • Hide word diff
+<?php
+
+$posts = get_posts( array(
+    'post_type' => 'any',
+    'thsize'    => 'grid170',
+    'post_type' => 'post',
+    'suppress_filters' => false, // to pass in required hooks
+) );
HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.