web-dev-qa-db-fra.com

Comment inclure le fichier php d'un plugin dans un autre fichier de fonctions du plugin

J'ai besoin de personnaliser la sortie du shortcode du plugin A en utilisant une fonction du plugin B. Donc, je modifie la fonction du shortcode du plugin A en insérant une condition pour vérifier la valeur de la fonction du plugin B mais je dois inclure le php fichier qui supporte cette fonction. J'ai essayé tous require_once, require et include mais j'obtiens les erreurs suivantes:

Si vous utilisez require_once('../../pluginname/pluginfunctions.php');

Avertissement erreur: require_once (): restriction open_basedir en vigueur. Le fichier (../../ magicmembers/core/libs/functions/mgm_misc_functions.php) ne se trouve pas dans le ou les chemins autorisés.

Si vous utilisez include(WP_PLUGIN_URL . '/pluginname/pluginfunctions.php');

Avertissement d'erreur: include (): l'accès aux fichiers URL est désactivé dans la configuration du serveur

Quelle est la bonne façon?

6
vadims

Le premier message d'erreur signifie qu'il existe des restrictions sur l'endroit où vous pouvez inclure des fichiers, définies par le serveur. Tu pourrais essayer avec

require_once ABSPATH . '/wp-content/plugins/pluginname/pluginfunctions.php';

mais je ne suis pas sûr que cela fonctionnerait.

Avec le second include, vous essayez d'inclure une URL qui est désactivée par le serveur pour des raisons de sécurité.

Cependant, pourquoi avez-vous besoin d'inclure la fonction du plugin B? Si le plugin B est présent, cela signifie probablement qu'il est activé, ce qui signifie que vous pouvez utiliser la fonction directement à partir du plugin A sans avoir à inclure le fichier spécifiquement.

2
pbd

La fonction à utiliser est: plugin_dir_path();

Exemple:

include_once plugin_dir_path( __FILE__ ).'plugin-functions.php';
0
kaiser