• Rozwiązano nesq

    (@nesq)


    Cześć!

    Otóż mam pewien problem, na mojej stronie opartej na WordPressie mam 2 kategorie. Jedna kategoria (i tylko ta) ma być wyświetlana na stronie głównej, w tej chwili są obie. Nie wiem jak temu zaradzić, próbowałem różnych rozwiązań, które znalazłem w Google.

    Pierwszym było dodanie przed pętlą w loopie czegoś w stylu:

    <?php if ( is_front_page() ) : ?>
    		<?php query_posts($query_string . '&cat=1'); ?>
    	<?php endif; ?>

    No, zadziałało pięknie, pojawił się tylko jeden problem. Przy takim rozwiązaniu nie działa wtyczka „WP-Paginate” odpowiadająca za numerację stron na stronie głównej. Klikam „dalej” link teoretycznie się zmienia dochodzi fraza „page/2”, ale wpisy się nie zmieniają. Porzuciłem więc to rozwiązanie.

    Kolejnym rozwiązaniem problemu miała być wtyczka Simply Exclude tutaj już paginacja zaczęła działać, w końcu się ucieszyłem, że mój problem zniknął, tylko w tym samym momencie pojawił się kolejny. Otóż w zakładce w menu z drugą kategorią (inną niż na stronie głównej) zniknęły wszystkie wpisy.

    Próbowałem też wtyczki Ultimate Category Excluder, jednak efekt jest taki sam jak w przypadku rozwiązania z dodaniem kodu przed pętlą loop – nie działa paginacja.

    Mam nadzieję, że wystarczająco (i zrozumiale) opisałem mój problem. Liczę na szybką pomoc.

    Z góry dzięki, pozdrawiam,
    nesq.

Viewing 3 replies - 1 through 3 (of 3 total)
  • Twórca wątku nesq

    (@nesq)

    Poszperałem jeszcze trochę głębiej w Kodeksie i temat rozwiązany. 🙂
    Przepraszam za kłopot.

    Jeśli ktoś miałby podobny problem to podaje rozwiązanie (na tym polega forum, a nie na pisaniu „poszukaj w google” 😉 )

    Oto kod:

    add_action('pre_get_posts', 'gloss_remove_glossary_cat' );
    
    	function gloss_remove_glossary_cat( $notused )
    	{
    	  global $wp_query;
    	  global $gloss_category;
    
    	  if( is_home() || is_feed() ||
    		  ( is_archive() && !is_category() )) {
    		 $wp_query->query_vars['cat'] = '-58' . $gloss_category;
    	  }
    	}

    Krótkie objaśnienie: całość trzeba dodać do functions.php (na końcu). Linijka, która odpowiada za usuwanie danej kategorii w tym przypadku ze strony głównej, feeda i archiwum to:

    $wp_query->query_vars['cat'] = '-58' . $gloss_category;

    ’-58′ to ID kategorii, którą chcemy usunąć.

    W moim przypadku całość wygląda tak:

    add_action('pre_get_posts', 'gloss_remove_glossary_cat' );
    
    	function gloss_remove_glossary_cat( $notused )
    	{
    	  global $wp_query;
    	  global $gloss_category;
    
    	  if( is_home() && !is_category() ) {
    		 $wp_query->query_vars['cat'] = '-6' . $gloss_category;
    	  }
    	}

    Kod odpowiada za usunięcie wpisów z kategorii numer 6 tylko ze strony głównej strony.

    Jeśli ktoś byłby ciekawy odsyłam jeszcze do szczegółowego opisu: http://codex.wordpress.org/Custom_Queries

    Pozdrawiam!
    nesq.

    Chciałem zadać podobne pytanie, ale w międzyczasie znalazłem odpowiedź gdzie indziej. Od razu i tu umieszczę pytanie i odpowiedź. Może się komuś przydać.
    Moje pytanie: Jak wybrać jedną konkretną kategorię do wyświetlania na stronie głównej (aby uniknąć wykluczania pozostałych kategorii z osobna gdy mamy ich dużo)?
    Odpowiedź: W tym samym pliku functions.php wklejamy bardzo podobny kod z numerem kategorii, tylko tym razem bez znaku minus przed numerem kategorii:

    add_action('wp_head', 'iworks_only_one_category');
    function iworks_only_one_category()
    {
        if ( is_home() || is_front_page() ) {
            global $wp_query;
            $wp_query->query('cat=10');
        }
    }

    Chciałem zadać podobne pytanie, ale w międzyczasie znalazłem odpowiedź gdzie indziej. Od razu i tu umieszczę pytanie i odpowiedź. Może się komuś przydać.
    Moje pytanie: Jak wybrać jedną konkretną kategorię do wyświetlania na stronie głównej (aby uniknąć wykluczania pozostałych kategorii z osobna gdy mamy ich dużo)?
    Odpowiedź: W tym samym pliku functions.php wklejamy bardzo podobny kod z numerem kategorii, tylko tym razem bez znaku minus przed numerem kategorii:

    add_action('wp_head', 'iworks_only_one_category');
    function iworks_only_one_category()
    {
        if ( is_home() || is_front_page() ) {
            global $wp_query;
            $wp_query->query('cat=10');
        }
    }

Viewing 3 replies - 1 through 3 (of 3 total)
  • Temat ‘Wybrane kategorie wpisów na stronie głównej’ jest zamknięty na nowe odpowiedzi.