Как мне прочитать значения из wp-config.php? - PullRequest
16 голосов
/ 27 октября 2011

Мне нужно получить имя пользователя, пароль и т. Д. Из файла wp-config для подключения к пользовательской базе данных PDO.

В настоящее время у меня есть другой файл, где у меня есть эта информация, но я бы хотел использовать только wp-config.

Так, как я могу прочитать различные свойства wp-config?

Ответы [ 7 ]

17 голосов
/ 08 мая 2014

Я даже определил свои собственные константы в wp-config.php и смог получить их в теме без каких-либо включений.

сор-config.php

define('DEFAULT_ACCESS', 'employee');

functions.php

echo "DEFAULT_ACCESS :".DEFAULT_ACCESS;

выходные данные DEFAULT_ACCESS: сотрудник

12 голосов
/ 28 октября 2011

Вот такой же код.

// ...Call the database connection settings
require( path to /wp-config.php );

// ...Connect to WP database
$dbc = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if ( !$dbc ) {
    die( 'Not Connected: ' . mysql_error());
}
// Select the database
$db = mysql_select_db(DB_NAME);
if (!$db) {
    echo "There is no database: " . $db;
}

// ...Formulate the query
$query = "
    SELECT *
    FROM `wp_posts`
    WHERE `post_status` = 'publish'
    AND `post_password` = ''
    AND `post_type` = 'post'
    ";

// ...Perform the query
$result = mysql_query( $query );

// ...Check results of the query and terminate the script if invalid results
if ( !$result ) {
    $message = '<p>Invalid query.</p>' . "\n";
    $message .= '<p>Whole query: ' . $query ."</p> \n";
    die ( $message );
}

// Init a variable for the number of rows of results
$num_rows = mysql_num_rows( $result );

// Print the number of posts
echo "$num_rows Posts";

// Free the resources associated with the result set
if ( $result ) {
    mysql_free_result( $result );
    mysql_close();
}
10 голосов
/ 28 октября 2011

Я бы просто включил файл, тогда у меня был бы доступ к переменной в нем varibales.

<?php
  require_once('wp-config.php');
  echo DB_NAME;
?>

Предполагается, что вы находитесь на том же сервере, и вы можете получить доступ к wp-config.php через файловую систему.

Если вы делаете это для плагина, этизначения уже доступны.Вам не нужно будет снова включать файл.

5 голосов
/ 19 декабря 2016

Вы можете получить все глобальные константы из wp-config.php, просто отобразив константу следующим образом:

<?php
  echo DB_HOST;
  echo DB_NAME;
  echo DB_USER;
  echo DB_PASSWORD;
1 голос
/ 21 сентября 2016

Если вы хотите подключиться к БД, для текущих версий PHP рекомендуется использовать расширение mysqli (расширение mysql будет устаревшим):

require_once ("../wp-config.php"); // path to wp-config depends on your file locatoin
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
0 голосов
/ 30 января 2019

Здесь - функция для чтения всех определений WP DB:

function get_wordpress_data() {
    $content = @file_get_contents( '../wp-config.php' );

    if( ! $content ) {
        return false;
    }

    $params = [
        'db_name' => "/define.+?'DB_NAME'.+?'(.*?)'.+/",
        'db_user' => "/define.+?'DB_USER'.+?'(.*?)'.+/",
        'db_password' => "/define.+?'DB_PASSWORD'.+?'(.*?)'.+/",
        'db_host' => "/define.+?'DB_HOST'.+?'(.*?)'.+/",
        'table_prefix' => "/\\\$table_prefix.+?'(.+?)'.+/",
    ];

    $return = [];

    foreach( $params as $key => $value ) {

        $found = preg_match_all( $value, $content, $result );

        if( $found ) {
            $return[ $key ] = $result[ 1 ][ 0 ];
        } else {
            $return[ $key ] = false;
        }

    }

    return $return;
}

, которая возвращает массив, подобный этому:

0 голосов
/ 24 августа 2017

Просто добавьте необходимый файл wp-load.php. Вы можете использовать все функциональные возможности WordPress, как get_recent_posts () и многие другие ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...