2016-11-04 3 views
1

Dies ist eine merkwürdige Frage. Es wurde von einem Kunden angefordert, aber ich habe Probleme, Beispiele dafür zu finden, so dass ich meistens nur nach einem Hinweis oder einer Spur suche, um dem zu folgen.Begrenzen Sie, wie viele Beiträge auf "Empfohlen" gesetzt werden können.

Ich habe eine Wordpress-Site mit einer vorgestellten Post-Taxonomie gebaut. Auf der Startseite werden nur sechs hervorgehobene Beiträge angezeigt. Standardmäßig werden sie in der Reihenfolge angezeigt, in der sie gepostet wurden.

Was der Client will ist, dass es eine Art von Funktionalität gibt, die begrenzt, wie viele Beiträge zu jeder gegebenen Zeit gesetzt werden können. Ein Beispiel dafür, wie dies im Idealfall funktionieren würde, wären sechs hervorgehobene Posts, der Admin geht hinein und setzt einen neuen Post als Feature. Aus diesem Grund wurde der Beitrag, der zuletzt als "Featured" festgelegt wurde, automatisch aus der Kategorie der hervorgehobenen Posts entfernt, um sicherzustellen, dass nur sechs zu einem beliebigen Zeitpunkt eingerichtet wurden.

Also, um das in einem Satz zusammenzufassen, wollen sie eine Art von Funktionalität gebaut, die automatisch den am längsten kürzeren Featured Post aus dieser Kategorie entfernt, so dass sie dies nicht selbst tun müssen.

Ich habe Probleme bei der Suche nach einem Beispiel dafür, wenn jemand etwas Ähnliches getan hat oder weiß, wo ich anfangen kann, diese Funktionalität aufzubauen, wäre das eine Menge Hilfe. Ich hoffe, ich konnte deutlich genug beschreiben, wonach sie suchen.

Antwort

0

Soweit ich weiß Hervorgehobene Beiträge ist nicht Teil von WordPress-Kern, so wäre es Ihr Thema, das die vorgestellten Postleitzahl behandelt.

Ohne zu wissen, was Ihr Thema ist, kann ich nicht wirklich spezifische Hilfe sein.

Erstellen Sie oben auf meinem Kopf ein Feature-Post-Array, und verwenden Sie count(), um die Anzahl der Elemente im Array zu verfolgen. Verwenden Sie if statments mit array_unshift(), um an der Vorderseite des Arrays einzufügen, und array_pop(), um einen Beitrag von der Rückseite des Arrays zu entfernen, wenn die maximale Anzahl der vorgestellten Beiträge überschritten wird.

Hier ist ein Beitrag, der Ihnen eine Vorstellung davon geben könnte, wie es durchgeführt werden kann. http://www.hongkiat.com/blog/wordpress-featured-content/

Die Unterstützung für den Ersteller Ihres Themas zu kontaktieren ist auch eine gute Option.

+0

Das Thema war Unterstrichen und die vorgestellten Option wurde erstellt durch eine benutzerdefinierte Taxonomie, wenn das hilft. Danke für den Link, ich werde auf jeden Fall nachlesen und versuchen, hier eine Lösung zu finden. –

0

Eigentlich ist das nicht so einfach, da die Feature-Funktion nicht dafür vorgesehen ist. Allerdings schlage ich folgendes:

Pseudo-Code:

// On save post check if the post is featured 

// If the post is featured get the number of featured posts from the database 

// if the number of featured posts from the database including the current post is greater than six un-feature the post with the oldest timestamp 

Dieser Code ist nicht getestet, aber es sollte in ähnlicher Weise arbeiten:

add_action('save_post','ensure_only_6_stickies'); 

function ensure_only_6_stickies($post_id) { 

    if(is_sticky($post_id)) { 
    $stickies = get_option('sticky_posts'); 

    if(is_array($stickies) && !in_array($post_id,$stickies) && count($stickies)>=6) { 
     $stickies = array_slice($stickies,5); 
     array_push($post_id,$stickies); 
     update_option('sticky_posts',$stickies); 
    } 
    } 
} 
+0

Die vorgeschlagene Option wird durch eine benutzerdefinierte Taxonomie gemacht, so dass ich mir nicht sicher bin, ob das Auswirkungen auf den Code haben wird oder nicht, aber die Logik hat mich definitiv dazu gebracht, etwas herauszufinden. –

+0

Ah, ich dachte, du sprichst von Stickies. Das Konzept sollte jedoch ziemlich ähnlich sein. Prüfen Sie auf save_post, wie viele Posts angezeigt werden und ob es> 6 ist. – Blackbam

Verwandte Themen