Legen Sie das Standard-Bildverknüpfungsziel im Gutenberg-Bildblock fest

10

Ich möchte das Standardziel des Bildblocks in Gutenberg auf "Mediendatei" setzen:

Linkziel

Ich habe Lösungen für den klassischen Editor gefunden und eine, die anscheinend für Gutenberg-Galerien funktioniert, indem ich die Blockvorlage bearbeite. Ich hatte jedoch den Eindruck, dass die beabsichtigte Methode zum Ändern des Verhaltens des Editors über JavaScript-Hooks im Blockeditor erfolgt.

Gibt es eine Möglichkeit, das Standardziel mithilfe eines JavaScript-Hooks im Blockeditor festzulegen?

UPDATE: Ich habe eine Pull-Anfrage für das Gutenberg GitHub-Repository gestellt, um zu versuchen, die Möglichkeit zu implementieren, das Standard-Link-Ziel mit einem Plugin zu überschreiben. Die neueste Version ist hier . Zum Zeitpunkt des Schreibens wurde dies noch nicht zusammengeführt.

Sean
quelle

Antworten:

4

Mit dem Filter können blocks.registerBlockTypewir die Einstellungen für die Blockregistrierung ändern. Wir müssen einfach den core/imageZielblock und den Standardwert für das Attribut ändern , linkDestinationdas ist keine standardmäßig.

function modifyLinkDestinationDefault(settings, name) {
    if (name !== "core/image") {
        return settings;
    }

    settings.attributes.linkDestination.default = "media";

    return settings;
}

wp.hooks.addFilter(
    "blocks.registerBlockType",
    "my-plugin/modify-linkDestination-default",
    modifyLinkDestinationDefault
);
Alvaro
quelle
1
Hat wie ein Zauber funktioniert, vielen Dank! Ich habe Ihren Code in einen ( function( wp ) { ... } )( window.wp );Block eingeschlossen und das Skript mithilfe des enqueue_block_editor_assetsPHP- Hooks in die Warteschlange gestellt . Für das Skript in der Warteschlange sollte die wp-hooksangegebene Abhängigkeit vorliegen .
Sean
1
Um die Standardeinstellung für Galerien festzulegen, müssen Sie den core/galleryBlock ändern und festlegen settings.attributes.linkTo.default. Gutenberg Inkonsistenzen ...
Sean
1
@ Sean Hier können Sie sehen , wozu Funktionen auf diese Weise verpackt werden. Wenn Sie eine Skriptabhängigkeit verwenden, die Ihr eigenes Skript in die Warteschlange stellt, können Sie in diesem Fall, wp-hookswie Sie angegeben haben, den Inhalt dieser Abhängigkeit sicher in Ihrem Skript verwenden.
Alvaro
2
Update: Leider funktioniert diese Lösung nicht wirklich. Die neue Standardeinstellung ist festgelegt, die hrefEigenschaft jedoch nicht - und dies ist erforderlich, damit das gespeicherte Bild den Link tatsächlich anzeigt. Es scheint, dass ich die onSetLinkDestinationFunktion tatsächlich irgendwie ausführen muss, um das einzustellen href, aber dies kann nicht getan werden, bis ein Bild tatsächlich hochgeladen wurde (dh am registerBlockTypeHaken nicht möglich ). Irgendwelche Ideen, wie dies behoben werden könnte?
Sean
1
Ich habe eine Pull-Anfrage eingereicht , um dies in Gutenberg zu implementieren, die später von einem anderen Benutzer verbessert wurde. Wenn Sie diese Funktion benötigen, wenden Sie sich bitte an die Entwickler dieser GitHub-Threads, um sie zu implementieren.
Sean