Verzeichnisaufbau
Ich habe meine (lokale) Installation (Entwicklungsbox) angepasst. Die aktuelle Verzeichnisstruktur lautet:
./root
|- wp (WordPress Core root)
\
|- wp-config.php
|- wp-content (Content and Vendor root)
\
|- mu-plugins (...)
|- themes (...)
|- plugins (...)
|- uploads (Custom uploads dir)
|- vendor (Composer installed libraries)
|- index.php (loads ~/wp/index.php > require( dirname(__FILE__).'/wp/wp-blog-header.php' ); )
Konfig
In meinem habe wp-config.php
ich das folgende Setup:
define( 'WP_SITEURL', 'http://example.dev/wp' );
define( 'WP_HOME', WP_SITEURL );
define( 'WP_CONTENT_DIR', './../../wp-content' );
define( 'WP_CONTENT_URL', 'http://example.dev/wp-content' );
define( 'WP_PLUGIN_DIR', '../../wp-content/plugins' );
define( 'WP_PLUGIN_URL', WP_CONTENT_URL.'/plugins' );
define( 'WPMU_PLUGIN_DIR', '../../wp-content/mu-plugins' );
define( 'WPMU_PLUGIN_URL', WP_CONTENT_URL.'/mu-plugins' );
Es ist ein Single - Site - Installation und keine der folgenden Konstanten definiert (und daher fällt auf Standard zurück): UPLOADBLOGSDIR
, UPLOADS
, BLOGUPLOADDIR
.
Filter
Als @Sven (Hofmann) mich im Chat fragte: Das einzige Plugin, das auf den *_url
Filtern läuft , ist ein Mu-Plugin, das das neue Themenverzeichnis erstellt:
add_filter( 'theme_root_uri', 'switch_theme_root_local' );
add_filter( 'theme_root', 'switch_theme_root_local' );
Wie Sie sehen, kann nichts mit internen URls in Konflikt stehen.
Problem
Schritt 1) Wenn ich in die "Medienbibliothek" gehe und auf einen Anhang klicke / ihn öffne, öffnet sich das Modal wie gewohnt und zeigt die Mediendatei (oder im problematischen Fall: das Bild) an.
Schritt 2) Klicken Sie oben auf den Link "Bild bearbeiten" und der folgende Bildschirm (Modalersatz) wird angezeigt. Beachten Sie das kaputte Bild. Ich habe die Chromes-Entwicklungstools geöffnet, um das el und die Attribute / den Pfad anzuzeigen.
Ich habe keine Ahnung, wie ich das debuggen soll und / oder wo der Ursprung der defekten Links liegen könnte. Ich gehe davon aus, dass dies irgendwo in WordPress am wenigsten dokumentierten Teilen vergraben ist : JavaScript-Vorlagen für die Medienbibliothek.
stream_preview_image()
, bewaffnet mit exit()
und var_dump()
;-) ps: es sieht auch so aus, als hättest du ein anderes Setup als meins, da ich keine relativen Pfade wie './../../wp-content' verwende. Ich denke, Ihre Konfigurationsdatei befindet sich in einem Unterverzeichnis.
wp_die( -1 );
in der wp_ajax_imgedit_preview()
entweder aus !current_user_can('edit_post', $post_id)
oder ! stream_preview_image($post_id)
.
defined
stattdefine
inwp-config.php
? Ich sehe dieses Verhalten bei meinen Skeleton-Installationen nicht.