it-swarm.com.de

add_image_size () für bestimmte Beitragstypen

set_post_thumbnail_size( 80, 80, true ); // true for all post types

Angenommen, ich habe zwei Post-Typen in meinem Blog im Spiel: Post, Video und Produkt. Ich möchte möglicherweise eine Bildgröße von 80 x 80 für meine Posts, aber 100 x 100 für meine Videos und 50 x 100 für meine Produkte. Meines Wissens bin ich gezwungen, Thumbnails für meine Post-Bilder in den Maßen 100x100 und 50x100 zu erstellen. Und für meine Produkte muss ich Miniaturansichten mit den Maßen 80 x 80 und 100 x 100 erstellen, obwohl ich diese nie verwenden werde.

Gibt es eine Möglichkeit, Bildgrößen zu erstellen, die auf Beitragstypen basieren, damit Sie nicht eine Reihe von Bildern erstellen, die Sie nicht verwenden möchten, und Ressourcen verschwenden, die an anderer Stelle verwendet werden könnten?

17
Sampson

Es gibt keine Möglichkeit, die Bildgrößen auf den Beitragstyp abzustimmen, da Bilder noch nicht an einen Beitrag angehängt sind, wenn Sie sie hochladen, und die Zwischenbildgrößen erstellt werden (wenn Sie sie einfach über "Neue Medien" hinzufügen, werden sie nicht einmal angehängt zu irgendeinem Beitrag überhaupt).

Allerdings habe ich vor kurzem zwei Plugins erstellt , die zusammen tun, was Sie wollen. Virtuelle Zwischenbilder fängt die Erstellung der Zwischenbildgrößen ab: Sie werden nicht auf der Festplatte erstellt, sondern sind noch im Metadaten-Array vorhanden. Dies lässt WordPress denken, dass sie existieren, so dass Sie sie wie normale Bilder verwenden können. Das Companion-Plugin On-Demand Resizer erstellt fehlende Bildgrößen, wenn sie angefordert werden. Wenn das Image zum ersten Mal angefordert und erstellt wird, wird allen nachfolgenden Anforderungen nur das neu erstellte Image zugestellt.

Diese Plugins müssen neu geschrieben werden, bevor ich sie in das WordPress-Plugin-Verzeichnis lege, aber sie sollten sicher sein. Oder zumindest TODO Kommentare, wenn sie unsicher sind.

11
Jan Fabry

Ich habe einen Code auf diesem anderen Thread gepostet, der beim Hochladen eines Bildes eine Überblendung mit dem Post-Typ festlegt, dann den Wert dieser Überblendung überprüft und die Größe der Post-Thumbnails nach dem Hochladen entsprechend anpasst. Es ist nicht perfekt oder kugelsicher, aber es sollte zumindest das Konzept demonstrieren.

2
goldenapples

Ich habe die folgende Lösung gefunden. Es werden nur Bilder für benutzerdefinierte Beitragstypen erstellt, ohne dass zusätzliche erstellt werden. Das einzige Problem ist, dass wenn Sie Plugins wie erweiterte benutzerdefinierte Felder verwenden und versuchen, das Galeriefeld zu rendern, nur die Standardgrößen für WordPress-Bilder angezeigt werden: 'Thumbnail', 'Medium', 'Large' und Sie können nicht auf benutzerdefinierte Post-Bildgrößen zugreifen, die erstellt wurden .

if ( function_exists ('add_image_size') ) {

function remove_default_img($sizes) {
    unset( $sizes['medium']);
    unset( $sizes['large']); 
    return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'remove_default_img');

$type = get_post_type($_REQUEST['post_id']);
// Post_Name Image Sizes ======================================================
if ( $type === "Custom_Post_Name" || $post_type === "Custom_Post_Name" ) {
add_image_size('custom_size_img', 165, 249, true);
}

}

0
No0n