Подключиться к базе данных с помощью файла wp-config wordpress
-
-
Пожалуйста,объясните _почему_ это невозможно как плагин.Please explain _why exactly_ it's not possible as plugin.
- 1
- 2012-05-04
- kaiser
-
Поскольку скрипт требует публичного доступа,а не со стороны администратора (он не будет работать ни с одной папкой,например с wp-content/plugins,поскольку может появиться экран входа в систему).Because the script require to be publicly accessed, not on the admin side( it will not work on any folder like wp-content/plugins since a login screen may come across ).
- 0
- 2012-05-04
- user983248
-
Я думаю,вы можете изменить свой вопрос,чтобы указать,что вы хотите делать со своим скриптом.В качестве плагина возможно практически все :)I think you might want to edit your question to say what you want to do with your script. Pretty much anything is possible as a plug-in :)
- 0
- 2012-05-04
- Stephen Harris
-
Проверка IPN для Paypal,видите,у меня не сработало,когда я делал это из папки Plugins,но да,из папки за пределами всей установки WordpressIPN validation for Paypal, See, it didn't work for me while doing it from the Plugins folder, but yes from a folder outside the whole Wordpress installation
- 0
- 2012-05-04
- user983248
-
2 ответ
- голосов
-
- 2012-05-04
Использование определений,заданных пользователем в 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);
Using the defines the user sets in wp-config:
mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
EDIT: Since your script is outside the Wordpress environment, what you want to do is initiate it before using the defines in wp-config.
require_once('./path/to/the/wp-config.php'); mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
-
Вы заявили,что в настоящее время это не работает в вашем собственном вопросе.Я не собираюсь голосовать против,но,пожалуйста,убедитесь,что ваш ответ действительно работает и показывает,что OP делает не так.Благодаря!:) Кстати: добро пожаловать в WPSE и не позволяйте моему маленькому толчку удерживать вас от ответов на другие вопросы.Ответ всегда приветствуется.Which you stated that it currently doesn't work in your own question. Not going to downvote, but please make shure that your answer really works and shows what the OP makes wrong. Thanks! :) Btw: Welcome to WPSE and don't let that little push by me hold you back from answering other questions. Answering is always highly appreciated.
- 1
- 2012-05-04
- kaiser
-
Подключение к базе данных работает.Проблема в моем вопросе заключается в абстрагировании функции,которая вызывает ее,во внешний файл.Значения,которые я здесь использую,определены в `wp-config.php`,который вы используете для настройки Wordpress.Вы хотя бы пробовали это,прежде чем предположить,что это не работает?The connection to the database works. The problem in my question is abstracting the function that calls it out to an external file. The values I'm using here are defines set in `wp-config.php` which you use to set up Wordpress. Did you at least try it before assuming it doesn't work?
- 0
- 2012-05-04
- akamaozu
-
Это немного отличается от исходного вопросаThis is a bit off the original question
- 0
- 2012-05-04
- user983248
-
Вы действительно пробовали?У меня была та же проблема,что и у вас _ (подключение к базе данных) _,и я решил ее,используя определения,установленные wp-config _ (как вы просили) _.Единственная переменная,которая вам нужна,это $ db_name,так как все остальные уже находятся в среде WP благодаря `wp-config.php`.Пока среда Wordpress загружена,у вас есть полный доступ к определениям. ** изменить: ваш сценарий находится за пределами среды Wordpress? **Have you actually tried it? I had the exact same problem you have _(connecting to the database)_ and I solved it by using the defines set by wp-config _(like you requested)_. The only variable you need is $db_name, since all the rest are already in the WP environment thanks to `wp-config.php`. As long as the Wordpress environment is loaded, you have total access to the defines. **edit: Is your script outside the Wordpress environment?**
- 0
- 2012-05-04
- akamaozu
-
Да,пожалуйста,прочтите мою последнюю правку,и спасибо,что нашли времяYes, please read my last edit, and thanks for taking the time
- 0
- 2012-05-04
- user983248
-
Не проблема.Протестировал мое исправление и отредактировал исходное решение,чтобы отразить его.Not a problem. Tested my fix and edited the original solution to reflect it.
- 0
- 2012-05-04
- akamaozu
-
@Akamaozu: Я приму ваш ответ как правильный после того,как вы отредактируете код с 'wp-blog-header.php' на 'wp-config.php',поскольку это файл,о котором идет речь.большое спасибо@Akamaozu: I will accept your answer as the correct one after you edit the code from 'wp-blog-header.php' to 'wp-config.php' since that is the file in question here. Thanks a lot
- 0
- 2012-05-04
- user983248
-
- 2014-04-05
Вы можете сделать свой скрипт частью своего сообщения WordPress,просто используя объект
$wpdb
,предоставленный самим WordPress.У объекта$wpdb
уже установлено соединение с базой данных,и вы можете использовать его для выполнения любых операций с базой данных: вставки,обновления,запроса и т. Д. Это предпочтительный метод для работы с базой данных внутри WordPress,как выне нужно открывать никаких дополнительных подключений к базе данных.Вот простой пример,например,для получения будущих сообщений:
$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/
You can make your script a part of your WordPress post, just use the
$wpdb
object provided by the WordPress itself. The$wpdb
object already has the database connection established and you can use it to perform any database operation: insert, update, query etc... This is preferable method for doing you DB stuff inside WordPress as you do not have to open any additional database connections.Here is a simple example for getting the future posts for instance:
$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");
Check out this article for additional info: http://wp.smashingmagazine.com/2011/09/21/interacting-with-the-wordpress-database/
-
Когда я удаляю ссылку из вашего ответа,я не получил никакой информации о том,каким будет реальное решение,кроме подсказки,что `$ wpdb` может выполнять базовые задачи базы данных.Не могли бы вы улучшить свой ответ,чтобы показать какой-нибудь простой пример?Благодарю.When I remove the link from your answer, I got no information about what the actual solution would be, aside from a hint that `$wpdb` can perform basic database tasks. Would you please mind to improve your answer to show off some basic example? Thanks.
- 1
- 2014-04-05
- kaiser
-
В статье есть очень подробное описание объекта `$ wpdb`,поэтому я не хотел вырезать и вставлять туда много текста.Но в основном,если ваш скрипт является частью WordPress,вы можете использовать объект `$ wpdb` для выполнения таких запросов к базе данных: `$posts=$ wpdb->get_results (" ВЫБРАТЬ ID,post_title FROM wp_posts WHEREpost_status='future' ANDpost_type='post' ORDER BYpost_date ASC LIMIT 0,4 "); Человек,задающий вопрос,позже пояснил,что он (а) не хочет делать это плагином,поэтому мой ответ сейчас менее актуален,поэтому я решил оставить его как есть.The article there has a very detailed description of the `$wpdb` object, so I didn't want to the cut and paste a lot of text there. But basically if your script is part of the WordPress, you can use the `$wpdb` object to run the database queries like this: `$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");` The person asking the question clarified it later that (s)he does not want to make it a plugin, so my answer is less relevant now, so I decided to leave it as is.
- 0
- 2014-12-11
- obaranovsky
-
Пожалуйста,всегда указывайте в вопросе любую необходимую информацию.Комментарии регулярно удаляются.Во всяком случае,я снова прочитал другой ответ и вопрос и оценил их оба.К настоящему времени исходный вопрос все еще выглядит как попытка взломать/заразить сайт,а другой ответ противоречит передовой практике в каждой отдельной строке.Please always put any information one needs into the question. Comments get cleaned up regularly. Anyway, I read the other answer and the question again and -1ed both of them. By now the original question still looks like an attempt to hack/infect a site and the other answer is against best practice in every single line.
- 0
- 2014-12-11
- kaiser
-
На мой взгляд,это лучшее решение.Всегда предпочтительнее использовать встроенные функции WordPress.Посмотрев в объект $ wpdb,должно стать ясно.This is the better solution in my opinion. Making use of build-in WordPress functions is always preferable. After looking in $wpdb Object it should become clear.
- 0
- 2017-06-14
- user3135691
Как я могу подключиться к базе данных с помощью файла wp-config.php?
Я пытаюсь сделать сценарий более удобным для Wordpress,и мне нужно подключиться к базе данных,но без установки сценария в качестве плагина.
В основном в моем сценарии
Скрипт не может быть установлен как плагин (что может упростить задачу),поэтому мне нужно подключиться к базе данных,используя существующий wp-config.php при установке ... Любые идеи???
Заранее спасибо
Редактирование и пояснение
1 - Мне нужно использовать wp-config.php как есть,без изменений. 2- Скрипт будет расположен по адресу www.example.com/script/ 3- Это невозможно сделать в виде плагина,так как ядро скрипта должно быть публично доступно без каких-либо скачков экрана входа в систему. 4- Мой вопрос в основном заключается в том,как подключиться к базе данных с помощью файла wp-config.php,изменив сценарий выше.