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 3 weeks, 6 days temu przez
youmound.
No a co jest w pliku strona.php?
„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();
Można do Ciebie @mrpauloen jakoś na privie napisać? Miałbym większą sprawę do Ciebie.
Jasne. Na tej stronie znajdziesz do mnie kontakt.