2017-06-21 6 views
3

Ich bin ein Plugin erstellen und ich konnte bereits die Beiträge nach Kategorie und nach der aktuellen Sprache mit get_posts() -Funktion von WordPress und die Übergabe des Attributs lang mit der pll_current_language() aus PolyLang.Erhalten Sie Beiträge nach Kategorie und Sprache, mit PolyLang

Jetzt frage ich mich, wie man die Beiträge nach Kategorien im Zusammenhang mit der Sprache erhalten? Zum Beispiel habe ich die News-Kategorie für Englisch und Noticias für Spanisch. Wie kann ich das automatisch einstellen?

Etwas wie folgt aus:

$args = array(
    ...... 
    'category' => **current_category_for_this_language** 
    ...... 
); 
return get_posts($args); 

Irgendwelche Ideen?

Antwort

1

Verwenden Sie pll_get_term und filtern Sie nach Kategorie. In diesem Fall ist '34' meine ID-Nummer (die man erhält, wenn man den Editier-Link des Begriffs schwebt).

Übrigens bekommt get_posts standardmäßig nur Posts in der aktuellen Seitensprache und es werden Posts standardmäßig nach Datum DESC sortiert, damit Sie diese aus Ihrer Suchanfrage weglassen können, denke ich.

$args = array(
    'posts_per_page' => 6, 
    'category'   => pll_get_term(34) 
); 
return get_posts($args); 

Quellen

https://polylang.wordpress.com/documentation/documentation-for-developers/functions-reference/

pll_get_term

Gibt die Kategorie (oder Post-Tag) Übersetzung

Verbrauch:

pll_get_term($term_id, $slug); 

'$ term_id' => (erforderlich) ID des Begriffs Sie die Übersetzung

'$ Slug' => (optional) 2-Buchstaben-Code der Sprache, Standardwerte in der aktuellen Sprache wollen

https://codex.wordpress.org/Template_Tags/get_posts

Standard Nutzungs

<?php $args = array(
    'posts_per_page' => 5, 
    'offset'   => 0, 
    'category'   => '', 
    'category_name' => '', 
    'orderby'   => 'date', 
    'order'   => 'DESC', 
    'include'   => '', 
    'exclude'   => '', 
    'meta_key'   => '', 
    'meta_value'  => '', 
    'post_type'  => 'post', 
    'post_mime_type' => '', 
    'post_parent'  => '', 
    'author'  => '', 
    'author_name'  => '', 
    'post_status'  => 'publish', 
    'suppress_filters' => true 
); 
$posts_array = get_posts($args); ?> 
+0

Konnte nicht besser erklärt werden! Vielen Dank, Joris! –

Verwandte Themen