it-swarm.com.de

dirname (__FILE__) gibt das falsche Verzeichnis im Plugin zurück

In meinem Plugin füge ich die Advanced Custom Fields-Dateien hinzu. Zum Einfügen in das Plugin gehört auch das Ändern der Standardverzeichnisse mit dirname(__FILE__).

In Schritt 3 funktioniert include_once einwandfrei. ACF funktioniert also, aber ohne Stylesheets oder Skripte, da in den Schritten 1 und 2 für die Stylesheets und Skripte, die ACF einordnet, Folgendes angezeigt wird:

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

Das möchte ich bekommen:

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

Ich verwende den Grid-Server von Media Temple (Shared Hosting).

Hier ist der relevante Code aus meinem 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' );

Wie kann ich das richtige Verzeichnis bekommen?

1
Mark Rummel

Ich habe das Problem mit $dir = plugins_url() . '/simple/acf/'; in Schritt 2 behoben. Ansonsten habe ich alles gleich gelassen.

// 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