Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I have two WP sites. I want to reach from one of them, into the other, and retrieve specific featured images for posts, and display them with a link to that post.

I am using this line (with the correct info for my target database):

$mydb = new wpdb('username','password','database','localhost');

What would I follow that with to retrieve and display a post thumbnail?

I am tinkering with a line of code I found elsewhere that looks like this:

$result = $mydb->get_results("select * from wp_posts where ID='1885'");

where '1885' is a sample post ID number.

In an ideal world, I would develop this to the point where it functions as a widget. The client could simply enter a post ID number from the external WP site, and the widget would retrieve the appropriate thumbnail, and display it as a link back to the appropriate post on the other site.

I am not literate at all with PHP. So far I do my best just manipulating snippets and working them into my theme templates.

share|improve this question

2 Answers 2

To get the featured image of a post (e.g. the post 1885 in your example) you need to check in the wp_postmeta table the entry with the values 1885 as post_id and "_thumbnail_id" as meta_key, the value in meta_value would be the post of type "attached" (uploading a post in the media library creates a post of type attached per image file) with the info about the image file used as featured image

share|improve this answer

I did the following in my localhost environment and it worked:

$mydb = new wpdb( 'user', 'password', 'database', 'localhost' );
$query = "SELECT meta_value 
    FROM wp_postmeta 
    WHERE post_id = %d 
    AND meta_key = '_wp_attachment_metadata'
";
$p_id = 4;

$result = $mydb->get_row( 
    $mydb->prepare( $query, $p_id ), 
    ARRAY_A
) or wp_die( "Error: query failed." );

$result_array = unserialize( $result['meta_value'] );
var_dump( $result_array );
die();

Looks like it's not possible to get $mydb->prefix.

Also, please note the use of $wpdb->prepare when dealing with user input values.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.