Ich baue eine Mitglieder-Website mit WordPress Multisite auf. Ist es möglich, die Anzahl der erzeugten Bilder in Abhängigkeit von der ausgewählten Vorlage zu beschränken?
Ich habe die folgenden Codezeilen ausprobiert, um bestimmte Bilder in der Galerievorlage zu generieren:
// Generate on all uploads
add_theme_support('post-thumbnails');
set_post_thumbnail_size( 1440, 350, true );
add_image_size( 'standard_box', 450, 215, true );
add_image_size( 'default_image', 691, 9999 );
// Generate on gallery template only
if ( is_page_template('page-gallery.php') ) {
add_image_size( 'gallery', 900, 9999 );
add_image_size( 'gallery_thumb', 450, 450, true );
}
Das hat nicht funktioniert. Ich habe einige Nachforschungen angestellt und kann anscheinend nichts zu diesem Thema finden. Wenn Sie mich in die richtige Richtung lenken könnten, wäre ich Ihnen sehr dankbar.
Antworten:
Das war schon immer ein Problem für mich - das Fehlen von Bildgrößen bei Bedarf und die nachfolgende Anzahl von Dateien, mit denen Sie enden können, wenn Sie viele Größen haben!
Ich kann die Logik hinter Ihren Bemühungen erkennen - das Problem ist, dass Sie
add_image_size
erst beim Hochladen wirklich ins Spiel kommen. Als solchesis_page_template(..)
wird es immer seinfalse
.Eine schnelle Google- Version von Aqua Resizer , einem Skript zur Behebung dieses Problems. Anstatt es zu verwenden
add_image_size
, verwenden Sie esaq_resize
direkt in Ihrem Design. Wenn keine Größe für das Bild vorhanden ist, wird es sofort erstellt und zwischengespeichert.Tatsächlich habe ich an mehreren Standorten mit vielen Bildgrößen eine ähnliche, wenn auch unterschiedliche Technik angewendet. Sie sparen immer noch den Aufwand für WordPress, indem Sie jede Größe für jedes hochgeladene Bild generieren - sie werden sofort generiert (& zwischengespeichert), wenn sie angefordert werden. Der Unterschied besteht darin, dass Sie einfach alle Standardbildfunktionen und Vorlagen-Tags von WP wie gewohnt verwenden können!
Wie @Waqas bereits erwähnte, hinterlässt die Verwendung von Aqua Resizer verwaiste Dateien, wenn Sie ein Bild aus Ihrer Medienbibliothek löschen. Mit meiner Technik werden alle Dateien gelöscht, da sie in der Datenbank gespeichert und von WordPress erkannt werden.
Und in der Praxis:
Ich beabsichtige, dies in ein Plugin umzuwandeln, das automatisch alle
add_image_size
Aufrufe in Größenänderungen nach Bedarf umwandelt. Sehen Sie sich also diesen Bereich an!quelle
Haftungsausschluss:
- Dies ist eigentlich keine Antwort.
- Es ist dazu gedacht , Ihnen Ihre zusätzliche Forschung zum Thema zu helfen.
- Des weiteren wird sie ist ein reflektierendes - zumindest Filz - in letzter Zeit häufiger Auftreten ähnlicher Fragen zu ähnlichen Problemen.
Weitere Informationen zu diesem Thema in der Wordpress-Entwicklung:
Hinweis: Die Liste ist keinesfalls geordnet und vollständig.
quelle
Wenn Sie im Handumdrehen Daumen erstellen möchten, können Sie den Aqua Image Resizer verwenden. Dieses Miniskript hat jedoch einen Nachteil. Die erstellten Thumbnails werden beim Löschen des Bildes aus der Bibliothek nicht gelöscht. Aber es ist keine große Sache. Bei Bedarf können Sie dies über SHH-Befehle tun
quelle
Es ist keine direkte Antwort auf Ihr Problem. Aber ich werde Ihnen helfen, ein Bild nach Ihren Bedürfnissen zu machen.
Wenn Sie add_image_size verwenden, wird die Größe der vorhandenen Bilder nicht geändert. Dies funktioniert nur für die neuen Bilder, die nach dem Hinzufügen Ihrer Funktion add_image_size hochgeladen werden.
Ihr Code generiert also keine neuen Bilder für die Funktion is_page_template.
Aber Sie können eine einfache PHP-Klasse verwenden, um Ihr Problem zu lösen ... es ist eine berühmte PHP-Klasse, die für viele Premium-Themen für WordPress verwendet wird. Es heißt Aqua-Resizer.
Weitere Informationen finden Sie hier: https://github.com/syamilmj/Aqua-Resizer Wiki: https://github.com/syamilmj/Aqua-Resizer/wiki
Problem, das auftreten kann:
Diese Funktion funktioniert so ....
Also, wenn es nicht beschneiden kann (für kleine Bilder, die Ihre Höhe oder Breite definiert haben), wird nichts angezeigt. Sie können diese Situation überwinden, indem Sie überprüfen, ob Sie einen Nullwert erhalten, nachdem Sie die URL in dieser Funktion ganz einfach übergeben haben, wie hier bei mir.
Auf diese Weise können Sie sicherstellen, dass das bestimmte Bild für eine bestimmte Seitenvorlage generiert wird, und auf diese Weise wird Ihre Website viel sauberer.
PS: Diese PHP-Klasse verwendet das WordPress-Core-Cropping-System, sodass es keine Sicherheitsprobleme gibt.
quelle