Hallo Leute,
ich habe folgendes Problem:
In einem Custom Post Type (Produkte) habe ich 3 TinyMCE-Editoren. Über jedem dieser Editoren befinden sich 3 Media Buttons (der Standard Media Button von WordPress "Dateien hinzufügen", ein Button zum Generieren von Shortcodes für Icons und ein Button zum Generieren von Shortcodes für verschiedene Produktansichten.)
Beim Klick auf den "Icons-Button" wird ein div geöffnet, das Einstellungen für den Shortcode für Icons ermöglicht. In diesem Fall lade ich aus einem JSON-File alle benötigten Informationen, erzeuge damit ein paar HTML-Elemente und baue durch einen Klick auf ebendiese den jeweiligen Shortcode, der dann im Editor landet.
Beim "Produkte-Button" verhält es sich ähnlich.
[ATTACH=CONFIG]10578[/ATTACH]
[ATTACH=CONFIG]10579[/ATTACH]
[ATTACH=CONFIG]10580[/ATTACH]
Dazu mal ein wenig Quellcode, damit ihr euch mehr darunter vorstellen könnt:
// Media Button hinzufügen
function add_shortcode_icons_button() {
echo '<a href="#" id="shortcode_icons" class="button"><i class="fa fa-flag"></i> Icons für Shortcodes</a>';
}
add_action( 'media_buttons', 'add_shortcode_icons_button' );
// JS hinzufügen
function add_enqueue( $hook ) {
if ( 'post.php' != $hook && 'post-new.php' != $hook ) {
return;
}
wp_enqueue_script( 'font_awesome_script', get_stylesheet_directory_uri() . '/library/admin/js/font-awesome.js' );
}
add_action( 'admin_enqueue_scripts', 'add_enqueue' );
// Template im Admin hinzufügen
function add_fontawesome_template() {
global $pagenow;
if ( $pagenow == 'post.php' || $pagenow == 'post-new.php' ) {
ob_start();
?>
// HTML-Template
<?php
echo ob_get_clean();
}
}
add_action( 'in_admin_header', 'add_fontawesome_template' );
Alles anzeigen
Ich füge mit
den Shortcode in den Editor ein. Den String shortcode baue ich mir vorher logischerweise zusammen.
Das Öffnen meines divs erfolgt über
Und nun zu meinem Problem:
Ist ein Editor vorhanden (zB bei Beiträgen oder Seiten) funktioniert alles wunderbar. Sobald ich mehrere Editoren habe, funktioniert ausschließlich der erste. Beim Klick auf meine Buttons über dem 2. oder 3. Editor springt der Browser zum ersten Editor.
Klar, ich spreche dummerweise die IDs der Buttons beim Klick an. Bei 3 verschiedenen Editoren habe ich jeweils 3 Buttons mit identischen IDs, was prinzipiell schon mal problematisch ist...
Selbst wenn ich eine Lösung dafür finde, den Buttons eindeutige IDs zuzuweisen und damit ebenfalls eindeutig einem Editor zuzuordnen, ist mir nicht klar, wie ich mit der Methode
den jeweiligen Editor ansprechen kann. Bisher landet mein Shortcode immer im ersten Editor.
Ich würde mich echt freuen, wenn jemand eine Lösung parat hätte, selbst wenn es bedeutet, dass ich alles nochmal umschmeißen muss...