Conecte-se ao banco de dados usando o arquivo wordpress wp-config


8

Como posso me conectar ao banco de dados usando o arquivo wp-config.php?

Estou tentando tornar um script mais amigável ao Wordpress e preciso conectar-me ao banco de dados, mas sem instalar o script como um plug-in.

Basicamente, eu tenho no meu script

$host = "xxxxxxxxxxx"; //database location
$user = "xxxxxxxxxxx"; //database username
$pass = "xxxxxxxxxxx"; //database password
$db_name = "xxxxxxxx"; //database name

//Database Connection
$link = mysql_connect($host, $user, $pass);
mysql_select_db($db_name);

O script não pode ser instalado como um plug-in (o que pode facilitar as coisas), por isso preciso conectar-me ao banco de dados usando o wp-config.php existente na instalação ... Alguma idéia ???

desde já, obrigado

Edição e Esclarecimento

1- Preciso usar o wp-config.php como está, sem modificações. 2- O script estará localizado em www.example.com/script/. 3- Não pode ser feito como um plug-in, pois o núcleo do script precisa ser acessado publicamente sem que nenhuma tela de login seja exibida. 4- Minha pergunta é basicamente como conectar-se ao banco de dados usando o arquivo wp-config.php, modificando o script acima.


11
Por favor, explique por que exatamente isso não é possível como plugin.
Kaiser #

Como o script precisa ser acessado publicamente, não no lado do administrador (não funcionará em nenhuma pasta como wp-content / plugins, pois pode aparecer uma tela de login).
User983248 4/12/10

Eu acho que você pode editar sua pergunta para dizer o que você quer fazer com seu script. Praticamente qualquer coisa é possível como um plug-in :)
Stephen Harris

Validação IPN por PayPal, Ver, não funcionou para mim ao fazê-lo a partir da pasta Plugins, mas sim de uma pasta fora toda a instalação Wordpress
user983248

Respostas:


10

Usando o define os conjuntos de usuários em wp-config:

mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);

EDIT : Como o seu script está fora do ambiente do Wordpress, o que você deseja fazer é iniciá-lo antes de usar o define no wp-config.

require_once('./path/to/the/wp-config.php');
mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);

11
O qual você declarou que atualmente não funciona em sua própria pergunta. Não vou diminuir o voto, mas certifique-se de que sua resposta realmente funcione e mostre o que o OP faz de errado. Obrigado! :) Btw: Bem-vindo ao WPSE e não deixe que esse pequeno empurrão meu impeça você de responder a outras perguntas. A resposta é sempre muito apreciada.
Kaiser #

A conexão com o banco de dados funciona. O problema na minha pergunta é abstrair a função que a chama para um arquivo externo. Os valores que estou usando aqui são os conjuntos wp-config.phpque você usa para configurar o Wordpress. Você pelo menos tentou antes de assumir que não funciona?
Akamaozu

Isso é um pouco fora da questão original #
user983248

Você realmente tentou? Eu tive exatamente o mesmo problema que você tem (conexão com o banco de dados) e resolvi usando as definições definidas pelo wp-config (como você solicitou) . A única variável que você precisa é $ db_name, pois todo o resto já está no ambiente WP, graças a wp-config.php. Enquanto o ambiente do Wordpress estiver carregado, você terá acesso total às definições. edit: Seu script está fora do ambiente do Wordpress?
Akamaozu

Sim, leia minha última edição e obrigado por reservar um tempo
user983248

3

Você pode transformar seu script em parte de sua postagem no WordPress, basta usar o $wpdbobjeto fornecido pelo próprio WordPress. O $wpdbobjeto já possui a conexão com o banco de dados estabelecida e você pode usá-lo para executar qualquer operação do banco de dados: inserir, atualizar, consultar, etc. .

Aqui está um exemplo simples para obter as postagens futuras, por exemplo:

$posts = $wpdb->get_results("SELECT ID, post_title FROM wp_posts WHERE post_status = 'future' AND post_type='post' ORDER BY post_date ASC LIMIT 0,4");

Confira este artigo para obter informações adicionais: http://wp.smashingmagazine.com/2011/09/21/interacting-with-the-wordpress-database/


11
Quando removo o link da sua resposta, não obtive informações sobre qual seria a solução real, além de uma dica que $wpdbpode executar tarefas básicas do banco de dados. Você poderia melhorar sua resposta para mostrar um exemplo básico? Obrigado.
kaiser

O artigo tem uma descrição muito detalhada do $wpdbobjeto, então eu não queria recortar e colar muito texto lá. Mas, basicamente, se o seu script faz parte do WordPress, você pode usar o $wpdbobjeto para executar as consultas ao banco de dados desta forma: $posts = $wpdb->get_results("SELECT ID, post_title FROM wp_posts WHERE post_status = 'future' AND post_type='post' ORDER BY post_date ASC LIMIT 0,4"); A pessoa que fez a pergunta esclareceu depois que não deseja transformá-lo em um plug-in, então minha resposta é: menos relevante agora, então decidi deixar como está.
Obaranovsky

Sempre coloque as informações necessárias na pergunta. Os comentários são limpos regularmente. Enfim, li a outra resposta e a pergunta novamente e coloquei os dois em -1. Até agora, a pergunta original ainda parece uma tentativa de invadir / infectar um site e a outra resposta é contra as melhores práticas em cada linha.
Kaiser

Esta é a melhor solução na minha opinião. É sempre preferível usar as funções incorporadas do WordPress. Depois de procurar no objeto $ wpdb, deve ficar claro.
user3135691
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.