Como chamar conteúdo do Wordpress pelo Asp.Net / C#

Apesar da constante expansão de sistemas de Blog em Asp.net / C# ainda considero como melhor e principal OpenSource de Blogs o WordPress (que utiliza PHP e MySQL). Este Blog, por exemplo, utiliza WordPress como base de seu sistema. Poderia citar inúmeros motivos para essa escolha, porém, vou mencionar o que considero ser o mais importante: escalabilidade. O WordPress atingiu uma escala tão grande que dominou o mercado quando o assunto é Blog. Como efeito disso, temos milhares e milhares de plugins desenvolvidos para facilitar a nossa vida. Alguns sistemas em Asp.Net / C# também possuem seus plugins mas bem longe da escala que possui o WordPress atualmente.

Tendo isso em mente, surge uma necessidade: você programou o site inteiro em Asp.Net / C# e quer implementar o Blog em WordPress, como fazer essa integração? Primeiramente no que se refere a arquivos, você pode criar uma pasta /blog em seu diretório e colocar ali seus arquivos do WordPress. A maioria dos servidor interpreta PHP e .NET na mesma hospedagem sem problemas, sendo que, temos a facilidade de implementar diferentes linguagens de programação no mesmo site sem problemas de compatibilidade.

Após instalado e funcionando o WordPress surge uma necessidade: como criar “chamados” dos Posts na home do site? É essa integração que veremos nesse artigo.

 

Código ASP.NET

Primeiro, no nosso código Asp.Net vamos criar um <ul> com uma Label do Asp.net dentro:



<ul>
<asp:Label ID="lblChamada" runat="server" Text=""></asp:Label>
</ul>


Agora precisamos conectar o Asp.Net ao MySQL.

 

Vamos a conexão Asp.Net e C# com o MySQL em 3 passos:

1º passo, baixar o Connector.

Para conectar o MySQL no Asp.Net precisamos do MySQL Connector, clique aqui para baixar. Será necessário cadastro no site do MySQL. É só cadastrar e fazer download.

Importante: Baixe o driver “Windows Binaries, no installer (ZIP)”.

Descompacte os arquivos baixados.

2º passo, criar referência do Connector em sua aplicação.

Em sua aplicação, vamos adicionar referência ao MySQL, para isso, clique com o botão direito do mouse em cima da sua aplicação e em Add Reference… Conforme imagem:

Adicionando referencia a DLL do MySQL

Na janela de Ad Reference… selecione a guia Browse e localize a DLL mysql.data.dll, que está entre os arquivos descompactados do Connector.

Localizando referencia a DLL do MySQL

Feito isso, você verá a DLL na pasta Bin da sua aplicação pelo Solution Explorer, conforme imagem:

DLL do MySQL

Compile o seu projeto.

3º passo, código.

Abra o código C# da página e insira a referência para a DLL, conforme abaixo:

Código C#

using MySql.Data.MySqlClient;

 

 Criando código C# para chamar as postagens

Agora vamos conectar no banco de dados MySQL do WordPress e chamar as postagens. Ler estas postagens e carregá-las como <li> dentro da Label que criamos acima.


string conexao = "SERVER=localhost; DATABASE=meu_blog; UID=meu_usuario; PASSWORD=minha_senha;";
MySqlConnection db = new MySqlConnection(conexao);

string sql = "SELECT * FROM wp_posts WHERE post_status = 'publish' AND post_type = 'post' ORDER BY post_date DESC LIMIT 0,3 ";

MySqlCommand comand = new MySqlCommand(sql, db);
db.Open();
using (MySqlDataReader dr = comand.ExecuteReader())
{
while (dr.Read())
{
string titulo = dr["post_title"].ToString();
if (titulo.Length > 38)
titulo = titulo.Substring(0, 35) + "...";

lblChamada.Text = lblChamada.Text + "<li><a href=\"http://www.meusite.com.br/blog/?p=" + dr["id"] + "\">" + titulo + "</a></li>";

}
}
db.Close();

Explicação do código:

Linha 1:
Montamos a conexão com o banco de dados, informando Server(servidor, no nosso caso localhost), database(banco de dados, no nosso caso meu_blog) UID(login, no nosso caso meu_usuario) e Password(senha, no nosso caso minha_senha).

Linha 2:
Criamos o objeto MySqlConnection.

Linha 4:
Criamos a string de conexão, código responsável por chamar os artigos no banco de dados. No código em questão, estamos chamando todos os Posts que tem o status “Publicado” por ordem de data, filtrando os últimos 3. Ou seja, vai aparecer os últimos 3 posts criados.

Para alterar o número de posts altere DESC LIMIT 0,3 substituindo o 3 pelo número desejado.

Para filtrar apenas posts de uma categoria específica, utilize o seguinte código: (substituindo o número 23 pelo ID da categoria):

string sql = “SELECT wp_posts.*, wp_term_relationships.term_taxonomy_id FROM wp_posts INNER JOIN wp_term_relationships ON wp_term_relationships.term_taxonomy_id = ’23’ WHERE post_status = ‘publish’ AND post_type = ‘post’ GROUP BY wp_posts.id ORDER BY post_date DESC LIMIT 0,3 “;

OBS: Lembre-se que minha tabelas estão com prefixo wp_ na frente. Essa é uma opção que você escolhe na hora de instalar o WordPress, substitua o wp_ pelo prefixo que você escolheu caso seja diferente ou remova wp_ caso não tenha prefixo em suas tabelas.

Linha 6:
Criamos o objeto MySqlCommand.

Linha 7:
Abrimos o banco de dados.

Linha 8 a 11:
Começamos a “varrer” o banco de dados com um while.

Linha 12:
Resgatamos o post_title e salvamos em uma string.

Linha 13 e 14:
Geralmente o título do artigo é grande, então criei esse if para verificar se for mais que 35 caracteres corta e coloca (…) na frente, como trata-se de um “chamado” para o artigo trabalharemos com informações limitadas.

Linha 16:
Preenchemos a Label lblChamada com um <li> que possui um <a> com link para o post e o título como texto do link.

Linha 20:
Fechamos a conexão.

Para resgatar outros tipos de informação, basta criar novas string(como o post_title) conforme nomes abaixo:


string data = dr["post_date"].ToString();

Para pegar a imagem destacada do Post, primeiro mude o SQL:

SELECT *, wp_posts.id AS id_post, attach.ID AS id_img, attach.guid AS src_img FROM wp_posts LEFT JOIN wp_posts attach ON wp_posts.id = attach.post_parent WHERE wp_posts.post_status = ‘publish’ AND wp_posts.post_type = ‘post’ ORDER BY wp_posts.post_date DESC LIMIT 0,3

Depois chame a string:


string data = dr["src_img"].ToString();

O comando acima vai retornar o endereço da imagem para que você possa inserir dentro da tag IMG SRC do seu código.

Espero que tenham gostado do artigo e que tenha sido útil, se gostou clique em Curtir.
Utilizem os comentários abaixo para dar sua opinião.

Forte abraço!

1 Comentário


  1. Ótimo artigo.
    Valeu pela dica.
    Sou estudante de programação pelo curso adv, http://www.cursoadv.com.br, estou adorando as aulas.
    Acho o wordpress uma ótima ferramenta ótima para criação de blogs, muito versátil e de fácil utilização.

    Responder

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

*