Como posso recuperar uma imagem de postagem em destaque de um site WP externo e exibi-la como um link de volta?

4

Eu tenho dois sites do WP. Quero ir de um deles para o outro e recuperar imagens em destaque específicas para as postagens e exibi-las com um link para essa postagem.

Estou usando essa linha (com as informações corretas para meu banco de dados de destino):

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

O que eu devo seguir para recuperar e exibir uma miniatura de postagem?

Estou mexendo com uma linha de código que encontrei em outro lugar que se parece com isso:

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

em que '1885' é um número de ID de postagem de amostra.

Em um mundo ideal, eu desenvolvo isso até o ponto em que ele funciona como um widget. O cliente poderia simplesmente inserir um número de ID de postagem do site WP externo, e o widget recuperaria a miniatura apropriada e a exibiria como um link para a postagem apropriada no outro site.

Eu não sou nada alfabetizado com PHP. Até agora eu faço o meu melhor apenas manipulando trechos e trabalhando-os em meus modelos de tema.

    
por Matt 04.02.2013 / 06:26

3 respostas

1

Sempre que estou tentando vincular dois sites, acho que a maneira mais eficiente e menos destrutiva é usar a API XMLRPC do WordPress. enlace

Nesse caso, você poderia extrair essas informações usando a biblioteca IXR_Client incorporada. Isso economiza uma tonelada de tempo escrevendo código e tentando misturar bancos de dados. Se eles acabarem em servidores completamente diferentes em algum momento. Você ainda pode ter esse trabalho.

É praticamente só isso ...

$client = new IXR_Client(XMLRPC_URL);
$client->timeout = 1;
$USER = XMLRPC_USER;
$PASS = XMLRPC_PASS;
$req = 'wp.getPost';
$post_id = 112;
if (!$client->query( $req, $post_id, $USER, $PASS ))
{
    die( 'Error while creating a new post' . $client->getErrorCode() ." : ". $client->getErrorMessage());
}
$postcontent =  $client->getResponse();
    
por BA_Webimax 22.08.2014 / 19:22
0

Para obter a imagem em destaque de um post (por exemplo, o post 1885 no seu exemplo), você precisa verificar na tabela wp_postmeta a entrada com os valores 1885 como post_id e "_thumbnail_id" como meta_key, o valor em meta_value seria o post do tipo "anexado" (o upload de uma postagem na biblioteca de mídia cria uma postagem do tipo anexado por arquivo de imagem) com as informações sobre o arquivo de imagem usado como imagem em destaque

    
por Jordi Cabot 04.02.2013 / 22:29
0

Eu fiz o seguinte no meu ambiente localhost e funcionou:

$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();

Parece que não é possível obter $mydb->prefix .

Além disso, observe o uso de $wpdb->prepare ao lidar com usuários valores de entrada.

    
por brasofilo 05.02.2013 / 23:39