wordpress wp-configファイルを使用してデータベースに接続する


8

wp-config.phpファイルを使用してデータベースに接続するにはどうすればよいですか?

スクリプトをよりWordpressフレンドリーにするために、データベースに接続する必要がありますが、スクリプトをプラグインとしてインストールする必要はありません。

基本的に私は自分のスクリプトを持っています

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

スクリプトをプラグインとしてインストールすることはできません(簡単にすることができます)。そのため、インストール時に既存のwp-config.phpを使用してデータベースに接続する必要があります...任意のアイデア???

前もって感謝します

編集と説明

1- wp-config.phpをそのまま使用する必要があります。変更はありません。2-スクリプトはwww.example.com/script/に配置されます。3-スクリプトのコアは、ログイン画面をジャンプせずにパブリックにアクセスする必要があるため、プラグインとして実行することはできません。4-私の質問は基本的に、上記のスクリプトを変更してwp-config.phpファイルを使用してデータベースに接続する方法です。


1
プラグインとしては不可能である理由を正確に説明してください。
カイザー2012年

スクリプトは、管理者側ではなく、公にアクセスする必要があるためです(ログイン画面が表示される可能性があるため、wp-content / pluginsなどのフォルダーでは機能しません)。
user983248

質問を編集して、スクリプトで何をしたいかを示すとよいでしょう。プラグインとしてはほとんど何でも可能です:)
Stephen Harris

PaypalのIPN検証、プラグインフォルダーから実行している間は機能しませんでしたが、Wordpressインストール全体の外部のフォルダーからは機能しました
user983248

回答:


10

wp-configでユーザーセットを定義する:

mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);

編集:スクリプトはWordpress環境の外にあるため、wp-configの定義を使用する前にスクリプトを開始する必要があります。

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

1
あなた自身の質問では現在それは機能しないとあなたは述べました。反対投票はしませんが、回答が実際に機能し、OPが何を間違っているかを示していることを確認してください。ありがとう!:)ところで:WPSEへようこそ。私に少し押しても、他の質問に答えないようにしてください。回答は常に高く評価されています。
カイザー、2012年

データベースへの接続が機能します。私の質問の問題は、それを外部ファイルに呼び出す関数を抽象化することです。ここで使用している値はwp-config.php、Wordpressのセットアップに使用する定義セットです。機能しないと思う前に、少なくとも試してみましたか?
あかまおず

これは元の質問から少しずれています
user983248

実際に試してみましたか?私はあなたが持っているのとまったく同じ問題(データベースへの接続)があり、wp-configで定義された定義を使用して(要求したように)解決しました。必要な唯一の変数は$ db_name wp-config.phpです。残りのすべてはのおかげですでにWP環境にあります。Wordpress環境が読み込まれている限り、定義に完全にアクセスできます。 編集:スクリプトはWordpress環境の外にありますか?
あかまおず

はい、私の最後の編集を読んで、時間を割いて感謝してください
user983248

3

スクリプトをWordPress投稿の一部にすることができます$wpdb。WordPress自体によって提供されるオブジェクトを使用するだけです。$wpdbオブジェクトが既にデータベース接続を確立し、任意のデータベース操作を実行するためにそれを使用することができますがあります:あなたは、追加のデータベース接続を開く必要がないので、挿入、更新、照会などは...これは、あなたのWordPress内部DBのものを行うための好ましい方法であります。

たとえば、将来の投稿を取得するための簡単な例を次に示します。

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

追加情報については、この記事を確認してください:http : //wp.smashingmagazine.com/2011/09/21/interacting-with-the-wordpress-database/


1
回答からリンクを削除すると、$wpdb基本的なデータベースタスクを実行できるヒントを除いて、実際の解決策についての情報が得られませんでした。基本的な例を示すために、回答を改善していただけませんか?ありがとう。
カイザー2014

そこの記事には$wpdbオブジェクトの非常に詳細な説明があるので、そこに大量のテキストをカットアンドペーストしたくありませんでした。しかし、あなたのスクリプトはWordPressの一部であり、基本的にあれば、あなたは使用することができ$wpdb、このようなデータベースクエリを実行するオブジェクトを: $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"); 質問をする人は、後で私の答えがあるので、彼は、それのプラグインにする必要はありません(複数可)ということを明らかに今はあまり関係がないので、そのままにすることにしました。
obaranovsky 14

質問には必ず必要な情報を入力してください。コメントは定期的に整理されます。とにかく、私はもう1つの答えと質問をもう一度読んで、両方とも-1にしました。これまでのところ、元の質問はサイトをハッキングまたは感染させる試みのように見え、他の回答はすべての行のベストプラクティスに反しています。
カイザー2014

これは私の意見ではより良い解決策です。組み込みのWordPress関数を使用することは常に望ましいです。$ wpdbオブジェクトを調べた後、それが明らかになるはずです。
user3135691 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.