web-dev-qa-db-fra.com

Appeler une fonction dans Functions.php depuis un externe PHP scénario

Préambule

J'ai essayé de m'assurer que cette question n'avait pas été posée auparavant. J'utilise StackExchange pour la première fois et j'ai peut-être échoué. Cela ne me dérange pas de réprimander; peau épaisse et j'apprends vite :)

LE PROBLÈME

J'ai écrit une fonction et placé dans le functions.php de mon thème

function serverConnect() {

$serverAccess = mysql_connect(DB_Host, DB_USER, DB_PASSWORD);

if (!$serverAccess) {
    die("Access Denied");
}

return $serverAccess; 
}

L'idée était de pouvoir se connecter à la base de données sous une fonction abstraite afin que, chaque fois que mon thème non conventionnel en avait besoin, je puisse me connecter et faire ce qui devait être fait.

À mesure que je construisais plus de fonctions, j’ai pensé qu’il serait avantageux de casser certaines fonctionnalités en fichiers PHP externes. Ce script est appelé lorsqu'un formulaire est publié dans le cp administrateur.

Dans theme-root/scripts/hypothetical-theme-function.php:

$switch = mysql_select_db( 'differentDB', serverConnent());

Le problème ici est que hypothetical-theme-function.php n'a pas accès à functions.php pour pouvoir appeler serverConnect ();

J'ai essayé d'inclure (/path/to/functions.php), include_once (/path/to/functions.php), require (/path/to/functions.php) et require_once (/path/to/functions.php ). Les erreurs que je reçois avec les commandes once sont les suivantes:

Fatal error: Call to undefined function serverConnent() ...

Le problème que je rencontre avec include ou required est:

Fatal error: Cannot redeclare serverConnect() ...

LA QUESTION

Comment appeler une fonction dans Functions.php à partir d'un script php externe?

1
akamaozu

Vous utilisez beaucoup mieux un plugin (mu-). Ajoutez simplement un dossier nommé mu-plugins dans votre répertoire wp-content et placez-y vos fichiers. Ajoutez ensuite un commentaire d’en-tête de plugin:

<?php
/**
 * Plugin Name: Some Name
 * Plugin URI: http://example.com
 * Description: Loads something
 * Version: 0.1
 * Author: Akamaozu
 * Author URI: http://example.com
 * License: GNU GPL 2 <https://Gist.github.com/1365159>
 */
// deny direct file access if WP not loaded
! defined( 'ABSPATH' ) AND exit;

// define your functions here
function foo()
{
    print '<h1>'.__FILE__.' loaded successfully!</h1>';
}
add_action( 'shutdown', 'foo' );
1
kaiser

Dans votre script externe, essayez d’appeler wp-load.php - example;

require( '../your-path-to-your-wp-base-directory/wp-load.php' );

Voyez comment vous êtes juste alors ...

0
userabuser