Ao usar o WordPress, as vezes é necessário exibir uma lista de manchetes ou última mensagem em páginas externas. Utilizando PHP e a API do WordPress, isso é muito fácil de fazer.

Situação

Você tem um site institucional e deseja colocar notícias nele (uma situação bem típica). Neste caso, podemos instalar o WordPress em uma pasta de nosso website e depois utilizar a API para pegar o conteúdo e exibi-lo no website.

Solução

A chave para ter acesso ao poder do WordPress a partir de uma página fora encontra-se no arquivo wp-load.php. Este arquivo carrega o aplicativo WordPress e carrega a sua API, e, portanto, torna o seu conteúdo disponível para uso. Uma vez que este arquivo é incluído em uma página do seu site, você será capaz de usar qualquer função WordPress. Simples assim! =]

Depois disso, você pode utilizar as mesmas funções, como se estivesse trabalhando em um módulo do WordPress, para carregar todo o conteúdo desejado. Por exemplo:

Espero ter ajudado!
Até a próxima! ^^’

Quer copiar esse post no seu site? Você pode!

Segundo a licença da Creative Commons 3.0 (CC BY SA 3.0) você pode copiar e distribuir esse conteúdo desde que faça menção ao autor original, para isso é só copiar esse código no final do artigo quando for publicá-lo em seu site:

<p>Artigo originalmente publicado em <em>28 de agosto de 2011</em> por <strong><a href="http://pedroelsner.com/" title="Pedro Elsner, Profissional de TI - São Paulo">Pedro Elsner</a></strong>: <a href="http://pedroelsner.com/2011/08/conteudo-do-wordpress-em-paginas-externas/" title="Conteúdo do WordPress em páginas externas">Conteúdo do WordPress em páginas externas</a></p>
A não menção ao autor original da obra implicará em cópia e/ou distribuição ilegal de propriedade intelectual, o que é crime segundo a Lei n.º 9.610.
  • Nando Rocha

    Pedro, como eu Uso o API de meu site especifico?
    Por ex. Tenho um site de notícias, e gostaria de colocar em outro site com um outro diretório.
    É o mesmo procedimento? 

  • Basicamente sim!

    Agora se o seu site atual estiver em wordpress, e o novo também acredito que não será possivel, vista que a API é carregada do primeiro, e quando você chamar a do segundo, as varias irão se sobrepor.

    Utilizo esta solução, por exemplo, quando tenho um site em Joomla (drumpal, php sem CMS), e tenho uma sessão especial em wordpress e quero colocar as manchetes do segundo na pagina principal do prmeiro. Funciona que é uma beleza! =]

    Se for o seu caso (dois wordpress) teste e post o resultado depois. ^^

  • Nando Rocha

    Como assim? 
    Minha página é C.I e quero puxar o conteúdo do WP. 
    Onde eu posso fazer esse procedimento?
    Esse arquivo loop.php fica eu coloco esse arquivo no WP? ou eu crio na minha pasta raiz do meu site?

    Obrigado pela resposta!

  • Nando, nao entendi muito bem o que você disse com C.I, mas se for PHP, basta chamar a include “wp-load.php” do repositório do seu wordpress, e, utilizar as funções do próprio wordpress para pegar o conteúdo.

    Você precisa saber um pouco da API do wordpress para fazer as querys no banco de dados.

    Link para o codex do wordpress: http://codex.wordpress.org/pt:Novo_no_WordPress_-_por_onde_come%C3%A7ar

  • Otávio Santos

    Grande Pedro, grande artigo!

    Meu caro, só preciso de mais uma ajuda, será que consegue me explicar como colocar paginação e a foto do artigo publicado?

    Vou tentar por aqui, se conseguir eu posto ok.

    Obrigado

  • Beleza Otávio?

    O thumb do artigo você pode exibir da seguinte forma:

    Já a páginação você pode usar um plugin para fazer isto.
    Eu utilizo o WP-PageNavi: http://wordpress.org/extend/plugins/wp-pagenavi/Basta você instalar, configurar e adicionar o seguinte código onde quizer que a páginaçao apareça:Abraços! =]

  • Otávio Santos

    Beleza Pedro,

    Cara, coloquei o script após o “endwhile”, mas não aparece o thumb, porque será?

    Obrigado, pela força!

  • Este foi o erro. ^^’

    Você tem que colocar dentro do laço while, junto com o the_title() e the_content();

  • Otávio Santos

    Cara… é ai mesmo?… coloquei em diversas linhas e não rolou…

    <?php
    /**
     * Carrega a API do WordPress
     */
    define('WP_USE_THEMES', false); // Não utiliza nenhum tema
    require('./blog/wp-load.php');

    query_posts('showposts=2');

    while (have_posts()): the_post();
      echo '’;
      the_title();
      if ( has_post_thumbnail() ) { // verifica se tem thumb
        the_post_thumbnail(‘thumbnail’); //mostra o thumb no tamanho desejado
    } echo ”; 
    the_excerpt();
      echo ‘Continuar lendo…‘;
    endwhile;
    ?>

  • É assim mesmo, veja no manual do WordPress: http://codex.wordpress.org/Function_Reference/the_post_thumbnail

    Nunca tentei utilizar este comando fora do ambiente do wordpress… as vezes esta função não fique habilitada…

  • Ricardo

    Ola Pedro, e o contrario da pra fazer ??   Exemplo tenho um formulario de outro site e quero colocar em forma de post no meu wordpress, ou seja mandar um artigo do site1 para o site2(wordpress)   poderia me responder em ricardo@xhp.com.br

  • Não entendi como coloca esse thumb, tentei de várias formas e não deu certo. Poderia me ajudar?

  • Otávio Santos

    Thiago, o thumb eu também não consegui, faz um tempo que configurei o site mas sem o thumb. Caso consiga, poste para conhecimento de todos, farei o mesmo.

    Abraço!

  • Neste caso não tem segredo. Basta criar uma include para seu tema, conectando no banco de dados do site1 e pegando as informações. =D

  • Vixi, mais de uma pessoa com a mesma dúvida. Sento cheiro de um novo tutorial =D
    Vou preparar algo e mando para vocês.
    Abraços

  • Evandro Duarte

    Muito bom seu Artigo..
    Se tivesse um exemplo, ficaria melhor ainda..

    abraço

  • Fera, pode me informar no email thiagosouza@futurocomunicacao.com ? preciso disso urgente!

  • Sou Foda

    Fera, vai demorar muito para fazer esse post? Também estou com a mesma dúvida!

  • Luan

    Ao pessoal que nao estava conseguindo inserir o Thumbnail, é necessário marcar como “feature image” no canto inferior direito do painel de redação do post quando vai escrever.
    Registrando a resposta mesmo 2 anos depois. rs

  • Alexandre Bonfá

    Pedro, com uma frase você resolveu o meu problema!!!
    Valeu!!!

  • Tiago Silva

    Bom dia Pedro!
    Para eu fazer com arquivos internos seria o mesmo procedimento??

  • pedro, tenho uma dúvida,
    comigo está dando o erro de data base

    Database Error

    Error establishing a database connection

    tenho que conectar também?

  • Boa Tarde,

    Estou implementando um site pessoal e gostaria de colocar algum plugin que atualizasse com noticias de algum outro de minha escolha, quero colocar apenas para ter mais conteúdo.

    Na tenho conhecimento em programação, por isso se tiver algum plugin agradeço se me indicar.

  • Daniel

    Boa noite,

    Um scripts do wordpress queria que ele executava dentro do meu site mais acho que os dois bando de dados deve ta dando confronto

    Exemplo:

    Executar os dados do banco de dados dentro do site chamando pelo include.

    Site com bancos de dados 1

    Blog wordpress com banco de dados 2

    Tem alguma soluções para fazer isso funciona certo sem da erro?

    Obrigado

  • Renan Machado

    Excelente! Tinha feito um com o require(‘../wp-blog-header.php’), tinha dado certo num site mas no outro não deu. Procurei, procurei e tava quase desistindo quando achei o seu artigo que resolveu o meu problema, indicando que posso usar o ‘wp-load’. Sabe me dizer qual é o arquivo correto? Tanto faz? algum é melhor?