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.