Benutzerdefinierter Gutenberg-Block mit ansprechenden Bildern

Lesezeit: 2 Minuten

Benutzer-Avatar
Lukas

Ich habe dieses Tutorial zum Erstellen eines benutzerdefinierten WordPress Gutenberg-Blocks befolgt: https://neliosoftware.com/blog/how-to-create-your-first-block-for-gutenberg/

Dieser erste Block ist nett, aber ich möchte in diesem Block eine benutzerdefinierte Bildgröße verwenden. Diese Bildgröße sollte auch responsiv sein, d.h. auf dem Frontend sollten srcset-Attribute zu anderen Bildgrößen hinzugefügt werden.

Ich habe lange im Internet gesucht aber nichts gefunden. Mit dem Standard-Bild-Block oder Galerie-Block werden skalierte Bilder aus WordPress verwendet, aber für mich ist dieser ganze Code zu kompliziert, um ihm zu folgen, weil ich mich noch nicht an die Gutenberg-Methode des Codierens gewöhnt habe …

Gibt es einen bestehenden Leitfaden oder ein Codebeispiel, wie dies erreicht werden könnte?

Bester Lukas

  • Ich bin hierher gekommen, um dasselbe zu erreichen. Ich werde mit einer Antwort aktualisieren. Ich bin nah dran (hoffe ich).

    – niklas

    30. Oktober 2018 um 11:07 Uhr

Ich habe eine Lösung mit Hilfe von gefunden dieses Gutenberg-Github-Problem. Die einfache Antwort ist, dass WordPress (php) alle Bilder mit dem Klassennamen konvertiert wp-image-<id> automatisch reagieren, mit der wp_make_content_images_responsive-Funktion.

Alles, was Sie tun müssen, ist, den obigen Klassennamen zu Ihrem Bild in der hinzuzufügen save Funktion.

Angewendet auf das von Ihnen erwähnte Beispiel würde es in etwa so aussehen:

save: function( props ) {
  var attributes = props.attributes;
  var alignment = props.attributes.alignment;
  var imageClass="wp-image-" + props.attributes.mediaId;

  return (
    el( 'div', { className: props.className },
      attributes.mediaURL &&
      el( 'div', { className: 'nelio-testimonial-image', style: { backgroundImage: 'url('+attributes.mediaURL+')' } },
        el( 'img', { src: attributes.mediaURL, class: imageClass } ),
      ),
      el( 'div', { className: 'nelio-testimonial-content', style: { textAlign: attributes.alignment } },
        attributes.testimonial && el( 'p', {}, attributes.testimonial ),
        el( 'p', { className: 'nelio-testimonial-name' }, attributes.name ),
        attributes.position && el( 'p', { className: 'nelio-testimonial-position' }, attributes.position )
      )
    )
  );
},

  • So etwas habe ich überall gesucht – danke!

    – TMG

    17. Mai 2021 um 12:50 Uhr

1311140cookie-checkBenutzerdefinierter Gutenberg-Block mit ansprechenden Bildern

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy