Mauerwerk verwenden - Wie lässt sich jedes Miniaturbild des X. Beitrags über mehrere Spalten erstrecken?
-
28-09-2020 - |
Frage
Um genau zu sein:
- Ich verwende Mauerwerk, um alle Beiträge in einer bestimmten Kategorie anzuzeigen
- Miniaturbilder für jeden Beitrag werden auf der Kategorieseite in einem 3-Spalten-Format mit CSS-Spalten mit flüssiger Breite angezeigt
- Ich muss das 7. Miniaturbild anzeigen, das sich über die Breite aller 3 Spalten erstreckt
In der Vergangenheit habe ich Beiträgen einen Zähler hinzugefügt, um auf den X-ten Beitrag abzuzielen und eine Klasse und einen Stil entsprechend anzuwenden.Aber ist das möglicherweise mit Mauerwerk, das absolut positionierende Elemente ist?
BEARBEITEN
Ich verwende diesen Code, um Beiträge auf der Mauerwerksseite abzufragen:
if ( get_query_var( 'paged' ) ) {
$paged = get_query_var( 'paged' );
} elseif ( get_query_var( 'page' ) ) {
$paged = get_query_var( 'page' );
} else {
$paged = 1;
}
$args = array(
'posts_per_page' => 12,
'paged' => $paged
);
// Override the primary post loop
query_posts( $args );
Lösung 2
Ich konnte also nicht herausfinden, wie Sie jedem Beitrag / Artikel-DIV eine Nummernsequenzklasse hinzufügen, aber ich habe gerade die Vorlage für den 7. Posten in der Mauerwerksvorlage geändert.
Ich habe es gefallen:
generasacodicetagpre.Andere Tipps
Dies sollte bei Mauerwerk kein Problem sein, zumindest hatte ich nie eines damit (oder ein ähnliches äquivalentes Isotop).Eigentlich ist es nur die Schönheit dieser Bibliotheken, dass Sie diese Art von Layout haben können.Der Rest kommt auf die richtigen CSS-Stile an.Ich weiß nicht, wie Sie Ihre Zähler- / Indexklasse anwenden, aber ich würde es wie unten gezeigt tun:
function wpse151589_indexed_post_class( $classes ) {
global $wp_query;
// the current_post property value starts counting at 0
// we are doing + 1 to start from 1
$index = $wp_query->current_post + 1;
// if you want the number to always have 3 digits
// like 001, uncomment the next line
//$index = sprintf( '%1$03d', $index );
// results in classes like post-nr-1/001
$classes[] = 'post-nr-' . $index;
return $classes;
}
add_filter( 'post_class', 'wpse151589_indexed_post_class' );
Bearbeiten: Auf Kommentar antworten
Es gibt einige Dinge, die ich gerne notiere,
Tun nicht verwenden
query_posts()
Es gibt einen Grund, warum sogar die entsprechende Kodexseite besagt:
Diese Funktion ist nicht für Plugins oder Themes gedacht.Wie später erläutert, gibt es bessere, leistungsfähigere Optionen zum Ändern der Hauptabfrage.
Und später:
Für allgemeine Post-Abfragen verwenden Sie
WP_Query
oderget_posts
.Und:
Es ist stark empfohlen, dass Sie das verwenden
pre_get_posts
filtern Sie stattdessen und ändern Sie die Hauptabfrage, indem Sie Folgendes überprüfenis_main_query
Die beiden informativsten und herausragendsten Quellen für die warum befinden sich tatsächlich hier auf WordPress-Entwicklung, sie sind absolut lesenswert:
Dass
post_class()
kann nicht draußen verwendet werden Schleife is nicht wahrEs gibt sogar eine Abschnitt darüber in der Dokumentation.Gewährte die Kodexseite für
post_class
ist nicht das Beste, was es gibt, aber es ist klar genug, dass die Funktion zwei Parameter hat, sie sind:$classes
und$post_id
.post_class( $classes, $post_id );
Was bedeutet:
Um Beiträge außerhalb der Schleife oder in einer alternativen Schleife anzuzeigen, kann der zweite Parameter der Funktion post_class die Beitrags-ID sein.Die Klassen werden dann aus diesem Beitrag ermittelt.
Dies - zusätzlich mit den Angaben aus 1.- macht es sehr gut möglich, dies für Ihren Zweck zu verwenden.
Der
WP_Query
objekt hat eine Eigenschaft namens$current_post
$aktueller Post
(verfügbar während Schleife) Index des aktuell angezeigten Beitrags.Es kann für Ihren Zweck verwendet werden, sodass Sie das Rad nicht neu erfinden müssen.