• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Kolejność wyświetlania postów - wordpress

42 Warsaw Coding Academy
0 głosów
232 wizyt
pytanie zadane 12 lutego 2021 w PHP przez Chris Black Początkujący (330 p.)

Witam

Chce zmienić kolejność wyświetlania postów  w Wordpress z domyślnej (czyli po dacie publikacji) na sortowanie na podstawie meta value postu ( timestamp ). Do pliku functions.php motywu potomnego dodałem taki kod:

function modify_main_query($query) {
   if ( ! is_admin() && $query->is_main_query() {
       $query->set('orderby', 'meta_value_num');
       $query->set('meta_key', 'moja_data');
       $query->set('order', 'DESC');
   }
}

add_action( 'pre_get_posts', 'modify_main_query' );

Działa to tylko na stronie głównej, na stronach kategorii, tagów, wyszukiwarki nic nie zmienia. Chciałbym żeby to zmieniało sortowanie wpisów wszędzie. Mógłby mi ktoś coś doradzić?smiley

1 odpowiedź

+1 głos
odpowiedź 12 lutego 2021 przez radek024 Szeryf (77,160 p.)
Nie jestem pewny, ale zapytanie na innych stronach aniżeli główna wywołuje inne zapytanie, a więc musisz również je nadpisać.
komentarz 12 lutego 2021 przez Chris Black Początkujący (330 p.)

Znalazłem część która odpowiada za wyświetlanie kolejności na stronach kategorii i tagów.

function theme_apply_archive_filter( $query ) {
	if ( is_archive() && $query->is_main_query() ) {
		$filter = theme_get_archive_filter_value();
		switch ( $filter ) {
			case 'newest':
				$query->set( 'orderby','date' );
                                $query->set('order', 'DESC');
				break;
  			case 'oldest':
				$query->set( 'orderby','date' );
				$query->set( 'order','ASC' );
				break;
			case 'most_commented':
				$query->set( 'orderby','comment_count' );
				$query->set( 'order','DESC' );
				break;
			default:
				do_action( 'theme_apply_archive_filter_' . $filter, $query );
				break;
		}

Gdy zmieniam bezpośrednio w pliku to działa ale nie bardzo wiem jak go nadpisać w pliku functions php, wyskakuje mi błąd gdy próbuje.

komentarz 12 lutego 2021 przez radek024 Szeryf (77,160 p.)
A nie możesz nadpisać w plikach odpowiadających za wyświetlanie danych części strony? Może w ten sposób? :D

Podobne pytania

0 głosów
1 odpowiedź 263 wizyt
pytanie zadane 12 lutego 2023 w PHP przez PiotrekPoznan Początkujący (250 p.)
0 głosów
1 odpowiedź 330 wizyt
pytanie zadane 20 sierpnia 2020 w PHP przez Bakkit Dyskutant (7,600 p.)
0 głosów
2 odpowiedzi 227 wizyt
pytanie zadane 8 lutego 2019 w PHP przez stanlejoss Nowicjusz (120 p.)

93,395 zapytań

142,389 odpowiedzi

322,569 komentarzy

62,753 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...