Dowiązania symboliczne na dev box z wtyczkami i arkuszami stylów

11

Używam Mac OS X 10.6 z XAMPP.

http://wp3.1/ to adres URL, pod którym mam zainstalowany WordPress.

Fizyczna ścieżka jest /Users/myUserName/Sites/wp3.1/

Nie instaluję wtyczek ani motywów w „naturalny” sposób. Utworzyłem katalog o nazwie „git”, który znajduje się w /Users/myUserName/git/. Tutaj mieszkają wszystkie moje repozytoria git. Kiedy chcę zainstalować wtyczkę, po prostu tworzę dowiązanie symboliczne /Users/myUserName/Sites/wp3.1/wp-content/plugins/. Działa to świetnie w przypadku prostych wtyczek, ale jeśli kolejka wtyczek jest arkuszem stylów lub skryptem, adres URL jest wyświetlany jako:

http://wp3.1/wp-content/plugins/Users/myUserName/git/options-framework-plugin/css/colorpicker.css?ver=3.1.1

Jak to naprawić?

pola
źródło

Odpowiedzi:

10

Linki symboliczne są… ryzykowne w WordPress. Łatwiej jest używać osobnej domeny dla wtyczek dla wp-config.php:

define( 'WP_PLUGIN_DIR', '/local/path/to/plugin/directory' );
define( 'WP_PLUGIN_URL', 'http://plugins.dev');

Zobacz Strategia budowania wtyczki przy użyciu Eclipse jako przykład konfiguracji IDE z taką konfiguracją.

fuxia
źródło
Ciekawe ... Dzięki! Zamierzam od razu spróbować.
mfields
To działało jak urok. Dzięki wielkie! Zajęło mi trochę czasu, aby skonfigurować moje vhosty, ale teraz wszystko działa idealnie. Szalone Rekwizyty !!!
pola
@toscho: Czy używanie oddzielnej domeny dla wtyczek nie spowoduje problemów z bezpieczeństwem między domenami w przeglądarkach? WP Pliki cookie, które nie są przesyłane, gdy uzyskujesz dostęp do czegoś w ` plugins.dev/myplugin/myaction.php '?
Jan Fabry
1
@Jan Fabry Używam tej metody wyłącznie do programowania. IMO, wtyczki kodowane w celu uzyskania dostępu do swoich plików robią to źle. Takie działania powinny być obsługiwane przez admin-ajax.php.
pola
1
+1 Jest to możliwe zarówno dla wtyczek, jak i wtyczek MU, ale niestety nie dla Dropinów, które muszą pozostać w twoim katalogu ~/wp-content...
kaiser
0

Jak widać, adres URL wtyczki jest poprawny, z wyjątkiem prawdziwej ścieżki utkniętej na środku. Możemy przefiltrować funkcję odpowiedzialną za generowanie adresów URL wtyczek i usunąć to.

Poniższy kod powinien zostać zainstalowany jako wtyczka Must Use :

add_filter( 'plugins_url', function( $url ) {
    return str_replace( '/Users/myUserName/git/', '', $url );
});
shea
źródło