Hoe lees ik waarden van wp-config.php?

Ik moet een gebruikersnaam, wachtwoord, enz. Van het wp-config -bestand krijgen om verbinding te maken met een aangepaste PDO-database.

Momenteel heb ik een ander bestand waar ik deze info heb, maar ik wil alleen de wp-config gebruiken.

Dus hoe kan ik de verschillende eigenschappen van wp-config lezen?

8

6 antwoord

Ik heb zelfs mijn eigen constanten gedefinieerd in wp-config.php en het is gelukt om ze terug te krijgen in het thema zonder inhoud.

wp-config.php

define('DEFAULT_ACCESS', 'employee');

functions.php

echo "DEFAULT_ACCESS :".DEFAULT_ACCESS;

outputs DEFAULT_ACCESS :employee

10
toegevoegd
Ja, dat is wat ik nu aan het doen ben.
toegevoegd de auteur Steven, de bron

Hier is wat dezelfde code.

// ...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 = '
Invalid query.

' . "\n"; $message .= '
Whole query: ' . $query ."

\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(); }
7
toegevoegd
Dat is niet het probleem, ik heb al toegang tot WP-functies. Welke code moet ik gebruiken om toegang te krijgen tot de inhoud in wp-config.php ?
toegevoegd de auteur Steven, de bron
Ik weet niet waarom ik niet nadacht. wp-config gebruikt constanten, dus ik kan ze "direct" benaderen. Bedankt Virgil :)
toegevoegd de auteur Steven, de bron
Dit werkt niet voor mij omdat wp-config.php probeert andere dingen te vereisen die PHP-berichten en waarschuwingen veroorzaken en het script lijkt daar te eindigen "Kan headerinformatie niet wijzigen" ... Niet zeker wat ik verkeerd doe. Zelfs als ik @ op de vereiste regel gebruik en error_reporting (0) toevoeg; ervoor, dezelfde terminaluitgang.
toegevoegd de auteur Jorge Orpinel, de bron
Ik heb mijn antwoord gewijzigd met een voorbeeld. Code. Bedankt!
toegevoegd de auteur Virgil Shelton, de bron

Ik zou gewoon het bestand opnemen, dan zou ik toegang hebben tot de variabelen erin varibales.

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

Dit gaat ervan uit dat je op dezelfde server zit en dat je via het bestandssysteem toegang hebt tot wp-config.php.

Als u dit doet voor een plug-in, zijn deze waarden al beschikbaar. U hoeft het bestand niet opnieuw op te nemen.

6
toegevoegd
Bedankt voor het eenvoudige en duidelijke antwoord :)
toegevoegd de auteur javatarz, de bron

Je kunt alle globale constanten van wp-config.php eenvoudig zo laten terugkeren naar de const:

<?php
  echo DB_HOST;
  echo DB_NAME;
  echo DB_USER;
  echo DB_PASSWORD;
1
toegevoegd

Als u verbinding wilt maken met DB, wordt voor de huidige versies van PHP de extensie mysqli aanbevolen (mysql extention gaat niet meer worden gebruikt):

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
toegevoegd

Voeg gewoon het vereiste wp-load.php-bestand toe. je kunt alle WordPress-functies gebruiken zoals get_recent_posts() en nog veel meer ...

0
toegevoegd