web-dev-qa-db-fra.com

dirname (__FILE__) retournant le mauvais répertoire dans le plugin

Dans mon plugin, j'ajoute les fichiers Advanced Custom Fields. Une partie de son inclusion dans le plugin consiste à modifier les répertoires par défaut à l'aide de dirname(__FILE__).

À l'étape 3, include_once fonctionne bien. Donc, ACF fonctionne, mais sans feuilles de style ni scripts, car aux étapes 1 et 2, je reçois les éléments suivants pour les feuilles de style et les scripts qu'Enques a définis:

http://example.com/templates/wp-starter/nfs/c05/h03/mnt/70376/domains/example.com/html/templates/wp-starter/wp-content/plugins/simple/acf/css/global.css?ver=5.0.0

C'est ce que j'aimerais avoir:

http://markrummel.com/templates/wp-starter/wp-content/plugins/simple/acf/css/global.css?ver=5.0.0.

J'utilise le serveur de grille de Media Temple (hébergement partagé).

Voici le code correspondant de mon plugin:

// 1. Customize ACF path
add_filter('acf/settings/path', 'my_acf_settings_path');

function my_acf_settings_path( $path ) {
    // update path
    $path = dirname( __FILE__ ) . '/acf/';

    // return
    return $path;  
}

// 2. Customize ACF dir
add_filter('acf/settings/dir', 'my_acf_settings_dir');

function my_acf_settings_dir( $dir ) {
    // update path
    $dir = dirname( __FILE__ ) . '/acf/';

    // return
    return $dir;  
}

// 3. Include ACF
include_once( dirname( __FILE__ ) . '/acf/acf.php' );

Comment puis-je obtenir le bon répertoire?

1
Mark Rummel

J'ai résolu le problème en utilisant $dir = plugins_url() . '/simple/acf/'; à l'étape 2. J'ai gardé tout le reste identique.

// 2. Customize ACF dir
add_filter('acf/settings/dir', 'my_acf_settings_dir');

function my_acf_settings_dir( $dir ) { 
  // update path
  $dir = plugins_url() . '/simple/acf/';

  // return
  return $dir; 
}
1
Mark Rummel