Wsparcie » Zaawansowane » dodanie newsów dla WP TABS

  • youmound

    (@youmound)


    Witam.
    Usiłuję stworzyć short code, który doda mi po prostu jakiegoś includa, z kodem którym wyświetlam wpisy z bazy z odpowiedniej kategorii.

    Tylko ja potrafię to zrobić jako szablon dla pliku. A mój plik nie jest tym szablonem i nie chce wyświetlać poprawnie artykułów. Wyświetla nie mniej kategorie. Po wejściu w nią newsy są grupowane poprawnie.

    Jak więc się do tego dobrać aby móc wyświetlać newsy z innych obiektach jak np. WP TABS?

Viewing 8 replies - 1 through 8 (of 8 total)
  • Paweł

    (@mrpauloen)

    Pokaż co już zrobiłeś.

    Thread Starter youmound

    (@youmound)

    function strona_template() {
      ob_start();
     // get_template_part( 'strona.php' ); 
     
    //require_once('strona.php');
     
     //include ('strona.php');
     
     //require_once WP_CONTENT_DIR . 'strona.php';
    
      return ob_get_clean();
    	}
    add_shortcode( 'strona', 'strona_template' );

    I jeśli dam [strona] to to działa ale tylko pod warunkiem, że kod zamknę w funkcji. Jeśli chce go załączyć to nie mogę trafić w ścieżkę…. Plik strona.php mam w tym samym miejscu co function.php a deburger wskazuje mi jakieś dziwne ścieżki.. Wpisywałem w całości: wp-content/themes/moj_szablon/strona.php

    i też nie działało.

    jeśli chodzi o same wyświetlanie wpisów to niestety nie wyświetla poprawnie nawet jeśli wkleję kod w funkcje.

    Ogólnie sekcję z wpisami z bazy na podstawie konkretnych Kategorii robię tak:

    <div class="container">
    <div class="row"> 
    <div class="col"> 
    
    	<?php
    	the_content();
    	?>	
    
    </div> <!-- col -->
    
    </div> 
    </div>
    
    <div id="content" class="margin_padding-30">
       <?php
        
    
          $columns_num = 3; 
          $i = 0;
          
          ?>
       <div class="row zero" style="margin-top:50px">
       
      
       
       <?php
       
        $category_id = get_cat_ID( 'Strona' );
    
    	$category_name = get_cat_name( $category_id = 18);
    	
        // Get the URL of this category
        $category_link = get_category_link( $category_id );
       
        $args = array( 'category' => 18, 'post_type' =>  'post' ); 
        $postslist = get_posts( $args );    
        foreach ($postslist as $post) :  setup_postdata($post); 
        ?>
    
    <!-- i tu HTML do ramki z zajawką -->

    I to mi nie chce wyświetlać poprawnie newsa. Wyświetla poprawnie jeśli wejdę w link /category/Strona ale nie w taki sposób…

    • Ta odpowiedź została zmodyfikowana 4 months temu przez youmound.
    Paweł

    (@mrpauloen)

    No a co jest w pliku strona.php?

    Thread Starter youmound

    (@youmound)

    „Ogólnie sekcję z wpisami z bazy na podstawie konkretnych Kategorii robię tak:”

    I pod spodem wstawiłem kod. On jest w tym pliku.

    Ogólnie rzecz biorąc to te zabiegi z include’owaniem to nie są potrzebne. Komplikują tylko kod i utrudniają ewentualną diagnostykę.
    Cały kod powinien zawrzeć się wewnątrz jednej funkcji.

    
    function kod(){
    
    	$args = array(
    	  'category' => 82, // ID danej kategorii
    		'posts_per_page' => -1, // wszystkie wpisy
    		'post_status'      => 'publish', 
    	);
    
    	$posts = get_posts( $args );
    
    	$output = '';
    
    	foreach ( $posts as $post ) :
    		setup_postdata( $post );
    		$output .= '<p>';
    		$output .=  '<a href="' . get_the_permalink( $post ). '">' . get_the_title( $post ) . '</a><br/>';
    		$output .= get_the_excerpt( $post );
    		$output .= '</p>';
    
    	endforeach;
    	wp_reset_postdata();
    
    return $output;
    
    }
    add_shortcode( 'kod', 'kod' );
    

    Ten kod wyświetla Ci wszystkie wpisy (parametr: posts_per_page ustawiony na -1) według danej kategorii (ja podałem ID 82 – a ty sobie jaką potrzebujesz).

    W edytorze Gutenberg jest już taki znacznik, który robi to samo.
    Nazywa się Latest Posts.

    Nawet by się obyło bez setup_postdata( $post ); i wp_reset_postdata();

    Thread Starter youmound

    (@youmound)

    Można do Ciebie @mrpauloen jakoś na privie napisać? Miałbym większą sprawę do Ciebie.

    Jasne. Na tej stronie znajdziesz do mnie kontakt.

Viewing 8 replies - 1 through 8 (of 8 total)