Mit der Einführung des Block-Editors wurden alle Plugins gelöscht, die Veröffentlichungsbedingungen wie Mindestwortzahlen, Bildanforderungen usw. bieten.
Der Blockeditor hat jedoch die Überprüfungen vor der Veröffentlichung eingeführt :
Wunderschönen. Wie können wir die Publish
Schaltfläche deaktivieren , bis eine bestimmte Anzahl von Bedingungen erfüllt ist?
Beispiele für vier (sehr) unterschiedliche Bedingungen:
- Minimale Wortzahl (Beispiel:
500
Wörter) - Min / Max-Tags (Beispiel:
3-5
Tags) - Min Kategorie (das ist nicht
uncategorized
) - Ausgewähltes Bild wird zugewiesen
Was wir bisher haben
Wie erwartet ist die Dokumentation nicht vorhanden. Die Leads sind jedoch über das Internet verteilt.
In core/editor
können wir .lockPostSaving () verwenden, um die Publish
Schaltfläche zu deaktivieren und über zu entsperren .unlockPostSaving()
.
Wir können dem Vorveröffentlichungsbildschirm über ein Panel hinzufügen PluginPrePublishPanel
. Beispiel (von MadMaardigan ):
var PluginPrePublishPanel = wp.editPost.PluginPrePublishPanel;
var registerPlugin = wp.plugins.registerPlugin;
function Component() {
// lock post saving
wp.data.dispatch('core/editor').lockPostSaving()
// unlock post saving
// wp.data.dispatch('core/editor').unlockPostSaving()
return wp.element.createElement(
PluginPrePublishPanel,
{
className: 'my-plugin-publish-panel',
title: 'Panel title',
initialOpen: true,
},
'Panel content'
);
}
registerPlugin( 'my-plugin', {
render: Component,
});
Es klappt:
Und wir haben großartige Diskussionen auf GitHub: # 7020 , # 7426 , # 13413 , # 15568 , # 10649 ...
quelle
Antworten:
Anzeige:
Die obige Lösung erfüllt die in der Frage aufgeführten Anforderungen. Eine Sache, die erweitert werden kann, ist die Kategorieprüfung. Ich mache einige Annahmen über die Kategorie-ID.
Der Kürze halber habe ich alle Überprüfungen aus Gründen der Kürze und Lesbarkeit in derselben Komponente gespeichert. Ich würde empfehlen, jeden Teil in eine separate Komponente zu verschieben und sie möglicherweise zu Komponenten höherer Ordnung zu machen (dh mit WordCount).
Ich habe Inline-Kommentare, die erklären, was getan wird, erkläre sie aber gerne weiter, wenn es Fragen gibt.
EDIT: So stelle ich das Skript in die Warteschlange
Hinzufügen weiterer Details zum Erstellungsprozess. Ich verwende @ wordpress / scripts und führe die folgenden Skripte aus:
Bearbeiten 2:
Sie können die Anhangsdaten erhalten über:
quelle
contributor
Ebene das Vorveröffentlichungsfenster nicht richtig sehen können. Siehe diesen Fehlerbericht .Update 29.02.2020
Sie müssen ersetzen
select( 'core/editor' ).getBlocks()
mitselect( 'core/block-editor' ).getBlocks()
dafür zu arbeiten, umDas hat bei mir funktioniert:
path\to\theme\pre-publish-checklist\src\index.js
Vollständige Schritte zum Erstellen des Panels mit @ wordpress / scripts
pre-publish-checklist
in Ihrem Themayarn
yarn build
quelle