Ich erstelle eine Baseball-Website mit mehreren Autoren. Aus der Vergangenheit, egal wie gut Sie jemanden persönlich kennen, bedeutet dies nicht, dass er Ihren Anweisungen folgt oder sie sogar liest.
Davon abgesehen möchte ich verlangen, dass jedes Bild, das ein Autor als "Verwendetes Bild" auswählt, mindestens 640 Pixel breit und mindestens 360 Pixel groß ist.
Ich habe verlangt, dass jeder Beitrag ein Featured Image mit dem WyPiekacz-Plugin enthält . Der Beitrag wird nicht ohne ein ausgewähltes Bild veröffentlicht. Ich habe die Möglichkeit für einen Autor, einen Hotlink zu einer anderen Site zu erstellen, blockiert, indem die Registerkarte "Von URL" unter "Medien hinzufügen" mit Bainternets Code entfernt wurde.
Jetzt muss ich verlangen, dass jedes Bild, das als vorgestellten Bild verwendet wird, mindestens 640 x 360 Pixel groß ist. Ich bin auf keinen Fall ein Programmierer, aber ich habe mit dem Code von Maor Barazany herumgespielt und versucht, ihn als Ausgangspunkt zu verwenden, aber ohne Erfolg. Sein Code erzwingt Mindestabmessungen für jedes hochgeladene Bild .
quelle
Antworten:
gut, wenn Sie das WyPiekacz-Plugin verwenden; Wie Sie sagten, um zu überprüfen, ob das ausgewählte Bild hochgeladen wurde, können Sie es ein wenig optimieren, um zu überprüfen, ob das ausgewählte Bild die erforderlichen Mindestmaße aufweist.
Sie können den obigen Code in wypiekacz.php ändern,
Nun, ich verstehe nicht, was Sie mit "Media Library Tab" meinen.
quelle
list($url, $width, $height) = wp_get_attachment_image_src($post_id, 'full');
geändert,list($url, $width, $height) = wp_get_attachment_image_src(get_post_thumbnail_id( $post->ID ), "Full"); echo $imgsrc[0];
um nur die Abmessungen des ausgewählten Bildes und nicht aller angehängten Bilder zu überprüfen.Ich habe den Kern überprüft und anscheinend gibt es wenig Spielraum.
In /wp-admin/includes/media.php werden Registerkarten zum Hinzufügen von Medien generiert
Die Funktion get_media_item in Zeile 1034 gibt die Tabelle attachments / media wieder. Ich kann keinen darin verfügbaren Filter oder die vorherigen Funktionen, die diesen aufrufen, sehen.
Einige Verweise und Codebeispiele rund um das Problem.
Ich denke, eine alternative Lösung wäre, den Titel der hochgeladenen Bilder zu ändern und seine Abmessungen anzufügen. Ich bin nicht sicher über die POST_TITLE einer hochgeladenen Datei zu ändern, aber das Umbenennen der Datei selbst mit diesen beiden Filter erreicht werden kann: sanitize_file_name und wp_handle_upload_prefilter
quelle
Keine vollständige Antwort und nicht für das Kopfgeld, nur ein Beweis dafür, dass das Grundkonzept funktioniert:
Nur ein 60secondsSnippet und hat ein großes Problem: Dies wird bei jedem Upload ausgelöst, und nicht nur, wenn jemand bereit ist, ein ausgewähltes Bild hinzuzufügen, da wir keine Möglichkeit haben, den Kontext des Bild-Uploaders zu ermitteln. Es gibt einige Möglichkeiten, dies zu umgehen, im Grunde genommen mit ein paar Manipulationen.
Ich sollte jetzt arbeiten und habe keine Zeit, damit zu experimentieren. Aber ich wollte so viel wie möglich helfen, und vielleicht ist dies ein Ausgangspunkt für andere.
Prost
quelle
Dies ist nicht die eleganteste Antwort ... aber es funktioniert! Das 'WyPiekacz'-Plugin ist zwar cool, wurde aber seit drei Jahren nicht mehr aktualisiert.
Die eleganteste Lösung mit der besten Benutzererfahrung würde JavaScript verwenden, um dies sowohl für die Schnellbearbeitung als auch für die Nachbearbeitungsseite zu handhaben. Dann füge ich zum Glück etwas zum
update_post_metadata
Filter hinzu (das zwar das Auftauchen des Bildes verhindert, aber keine Warnung ausgibt, da es mit AJAX ausgeführt wird).Administratorbenachrichtigungen werden nicht angezeigt, da WordPress umleitet und auch dann nicht bei einer Schnellbearbeitung angezeigt wird (meine Methode zeigt eine Warnung bei der Schnellbearbeitung an, obwohl sie nicht gestaltet ist).
quelle
Hier ist eine Möglichkeit, um sicherzustellen, dass ein Miniaturbild in der richtigen Größe vorhanden ist, bevor es angezeigt wird.
Erstellen Sie zunächst diese Hilfsfunktion:
Dann können Sie jetzt vor dem Anzeigen des Beitrags-Thumbnails Folgendes überprüfen:
quelle
Das wird was brauchen :)
Es wird get_the_post_thumbnail verwendet, was Ihnen möglicherweise auch weiterhilft, sodass Sie keinen Haufen fn-Code erstellen müssen, den WordPress bereits für Sie verarbeiten kann, nur ein Gedanke.
Dies wird verwendet
$thumbnails = get_posts(array('numberposts'=>1,'orderby'=>'rand','meta_key' => '_thumbnail_id'));
, um eine zufällige zu erfassen, wenn eine nicht vorhanden ist. Dies kann Ihnen helfen, voranzukommen.Dieses Bit
echo get_the_post_thumbnail($thumbnail->ID, 'small-thumb', array( 'alt' => esc_attr( $post->post_title ), 'title' => esc_attr( $post->post_title ) ));
beachte, dass'small-thumb'
es an die add_image_size fn angepasst wird, die wir ein paar Zeilen zusammenstellen. Wenn Sie es hättenadd_image_size( 'small-square', 100, 100, true );
, könnten Sie'small-square'
alternativ anrufen .Prost
quelle