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ć?

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ą.


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 );
});
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.