Ich versuche, den Medienmanager zu bearbeiten, um die Auswahl einer neuen Option im Auswahlfeld "Link zu" zu ermöglichen.
Diese Backbone-Vorlage ist derzeit in media-template.php definiert
<label class="setting">
<span><?php _e('Link To'); ?></span>
<select class="link-to"
data-setting="link"
<# if ( data.userSettings ) { #>
data-user-setting="urlbutton"
<# } #>>
<option value="post" <# if ( ! wp.media.galleryDefaults.link || 'post' == wp.media.galleryDefaults.link ) {
#>selected="selected"<# }
#>>
<?php esc_attr_e('Attachment Page'); ?>
</option>
<option value="file" <# if ( 'file' == wp.media.galleryDefaults.link ) { #>selected="selected"<# } #>>
<?php esc_attr_e('Media File'); ?>
</option>
<option value="none" <# if ( 'none' == wp.media.galleryDefaults.link ) { #>selected="selected"<# } #>>
<?php esc_attr_e('None'); ?>
</option>
</select>
</label>
Ich könnte diese Vorlage in mein Plugin kopieren, meine Änderungen vornehmen und erweitern media.view.Settings.Gallery
, um meine neue Funktionalität hinzuzufügen. Dies könnte jedoch zu potenziellen Konflikten mit anderen Plugins führen, die diesen Teil des Medienmanagers ebenfalls ändern möchten.
media.view.Settings.Gallery = media.view.Settings.Gallery.extend({
template: media.template('caffeine-gallery-settings'),
Die Alternative ist, dass ich die neue Option über jQuery / like zum Auswahlmenü hinzufüge. Die App ist bereits auf JavaScript angewiesen, damit die Erfahrung nicht beeinträchtigt wird. Dies scheint jedoch nicht der richtige Weg zu sein, um diese Änderung vorzunehmen. Es fühlt sich an, als würde es gegen den Geist von Backbone und WordPress verstoßen.
Mein Ideal ist, dass die Backbone-Vorlage einen WordPress-Filter enthält (machbar, da es sich immerhin nur um eine PHP-Datei handelt), mit dem diesem Auswahlmenü neue Optionen hinzugefügt werden können.
Welche dieser Optionen ist außerhalb meiner Überlegungen die beste?