Ein seltenes Ereignis - Ich möchte etwas in WordPress tun, habe aber keine Ahnung, wie ich vorgehen soll, und die Suche ergibt buchstäblich nichts.
Wenn Sie ein Bild in einen Beitrag einfügen, erhalten Sie Ausrichtungsoptionen: "Keine", "Links", "Rechts", "Mitte". Diese führen dazu, dass das Bild mit einer CSS-Klasse eingefügt wird, die sich auf die Ausrichtung bezieht, z. B. 'alignleft', 'alignright' oder 'aligncenter'.
Groß.
Was wäre, wenn mein Thema etwas komplexer wäre und ich hier einige Optionen hinzufügen wollte, die genau wie die Kernoptionen den eingefügten Bildern nur eine neue CSS-Klasse hinzufügen würden? Zum Beispiel - eine Option für den rechten Rand, die ich mit ausgefallenem CSS gestalten könnte, um komplexere Layouts zu erhalten?
Irgendwelche Hinweise, wo ich anfangen könnte?
Antworten:
Ich stimme David-Binda zu - tolle Frage! Ich bin mehrmals auf dieses Problem gestoßen und habe eine Lösung gefunden, die ziemlich gut funktioniert. Ich mag zwar die Idee, einen Shortcode hinzuzufügen, um das Bild mit Klassen einzufügen, wie von pavlos-bizimis vorgeschlagen, aber ich denke nicht, dass dies das Problem so elegant löst wie das Hinzufügen von Optionen zum Bildbearbeitungs-Popup (zum Beispiel müssten Sie wahrscheinlich Wickeln Sie das Bild in Ihren Shortcode ein, es sei denn, Sie möchten eine Bild-ID manuell eingeben. Für einige meiner Kunden ist sogar ein Shortcode zu kompliziert (in diesem Fall können Sie ihn natürlich an einen TinyMCE-Button binden).
Wie auch immer,
ohneweiteres - hier sind meine fünf Cent. Ich verwende diese Lösung in einem Diashow-Plugin, mit dem ich das Bild in die Diashow einschließen / ausschließen und eine Hintergrundfarbe für eine Überlagerung festlegen kann, die den Inhalt einiger Bildmetafelder anzeigt. Grundsätzlich wird es inattachment_fields_to_edit
undattachment_fields_to_save
um die Eingabefelder hinzuzufügen und die Formulardaten jeweils zu speichern. Diese Daten sind als Standard-Post-Meta für den Anhangspost verfügbar (dh das Bild, das Sie bearbeiten). Dies ist großartig, da es einfach ist, esget_post_meta()
wie gewohnt abzurufen . Außerdem sollten Sie einen Filter hinzufügenwp_get_attachment_image_attributes
oderimage_send_to_editor
hinzufügen, mit dem Sie bei jeder Bildausgabe automatisch die entsprechende Klasse hinzufügen können.Ich habe den Code aus Gründen der Lesbarkeit leicht geändert, sodass einige Teile möglicherweise unvollständig / fehlerhaft sind.
UPDATE : Ich habe diesen Code gerade kopiert, um ihn als Boilerplate in einem Projekt zu verwenden, an dem ich arbeite. Wie Sie wahrscheinlich anhand des Codes erkennen können, möchte ich meine Post-Meta-Schlüssel in definierten Konstanten speichern. Wenn ich das mache, stelle ich den Wert immer voran
_
, um zu verhindern, dass er im Meta-Feld-Editor angezeigt wird, aber diese Vorgehensweise kann einige Probleme mit verursachenattachment_fields_to_save
. Schlüssel im$form_fields
Array können nicht mit beginnen_
. Achten Sie daher darauf, beim Umgang mit Anhangsfeldern unterschiedliche Schlüssel für das Array und die Metawerte zu verwenden oder Unterstriche zu kürzen. Da diesSLIDESHOW_EXCLUDE_IMAGE_KEY
in meinem Beispiel nicht einmal definiert ist, ist dies beim Kopieren des Codes wahrscheinlich keine große Sache, aber ich dachte, ich würde es trotzdem erwähnen. Ich habe eine Weile gebraucht, um das herauszufinden (und das zum zweiten Mal).quelle
Gute Frage. Und diese Frage hat ihre Lösung. Vielleicht ist der folgende Code viel zu lang, kann aber nicht kürzer sein. Der Punkt ist, dass Sie den Hook wp_footer und wp_admin_footer für die Funktion wp_print_media_templates entfernen und durch Ihre eigene Funktion wp_print_media_templates durch benutzerdefinierte Optionen ersetzen können. Wenn Sie einfach den folgenden Code in Ihre functions.php einfügen, wird die ursprüngliche Funktion überschrieben, und Sie können Klassen nach der Zeile mit dem HTML-Kommentar ändern. <! - SETZEN SIE IHRE KLASSEN HIER -> Klassen werden auf folgende Weise in den Galerie-Shortcode eingefügt:
Der als MyClass1 festgelegte Wert erzeugt alignMyClass1.
Wenn Sie Klassen ohne das Präfix "Ausrichten" festlegen möchten, müssen Sie das Einfügen von Shortcode in den Inhaltstextbereich des Posts in Javascript ändern. Dies ist möglicherweise zu kompliziert im Vergleich zum Umbenennen Ihrer Klassen in CSS. Enyoj!
quelle
Vielleicht sollten Sie einen Shortcode zum Einfügen des Bildes mit Klassenattributen erstellen. Ich habe das in vielen kommerziellen Themen gesehen.
quelle
Sie können die eindeutige Bild-ID verwenden, um bestimmte Bilder individuell zu gestalten.
quelle