Wsparcie » Wtyczki » własne typy postów

  • Witam

    Utworzyłem sobie własny typ postu, umieszczając kod w functions.php mojego szablonu:

    add_action( 'init', 'register_cpt_autor' );
    
    function register_cpt_autor() {
    
        $labels = array(
            'name' => _x( 'Autorzy', 'autor' ),
            'singular_name' => _x( 'Autor', 'autor' ),
            'add_new' => _x( 'Dodaj autora', 'autor' ),
            'add_new_item' => _x( 'Dodaj nowego autora', 'autor' ),
            'edit_item' => _x( 'Edytuj autora', 'autor' ),
            'new_item' => _x( 'Nowy autor', 'autor' ),
            'view_item' => _x( 'Zobacz autora', 'autor' ),
            'search_items' => _x( 'szukaj autora', 'autor' ),
            'not_found' => _x( 'nie znaleziono autora', 'autor' ),
            'not_found_in_trash' => _x( 'nie znaleziono autora w koszu', 'autor' ),
            'parent_item_colon' => _x( 'Parent Autor:', 'autor' ),
            'menu_name' => _x( 'Baza autorów', 'autor' ),
        );
    
        $args = array(
            'labels' => $labels,
            'hierarchical' => false,
            'description' => 'Autorzy książek',
            'supports' => array( 'title', 'editor', 'author', 'thumbnail' ),
            'taxonomies' => array( 'category' ),
            'public' => true,
            'show_ui' => true,
            'show_in_menu' => true,
            'menu_position' => 5,
          //  'menu_icon' => get_bloginfo("wpurl").'/wp-content/uploads/avatars/author_base.png',
            'show_in_nav_menus' => true,
            'publicly_queryable' => true,
            'exclude_from_search' => false,
            'has_archive' => true,
            'query_var' => true,
            'can_export' => true,
            'rewrite' => true,
            'capability_type' => 'post'
        );
    
        register_post_type( 'autor', $args );
    }

    Od strony panelu wszystko działa ok, problem jest jednak z wyświetlaniem postu tego typu. Używam url-i typu %postname%, nie można jednak dostać się do treści w sposób: domena/nazwa_posta ani domena/autor/nazwa_posta. Także w przypadku prostych urli, do postu typu autor można się dostać tylko i wyłącznie poprzez domena/?autor=nazwa_posta. Nie działa wtedy jednak min.url_to_postid( $_SERVER[’REQUEST_URI’]);`
    , czego używam w szablonie.

    I tu moje zapytanie, czy wie ktoś jak umożliwić wyświetlanie postu typu autor w sposób domena/autor/tresc_posta? (tak jak w opcji Zobacz w panelu)

    Próbowałem w różnych szablonach i trochę z mod_rewrite, ale bez skutku.
    Pomoże ktoś 😉 ?

Viewing 4 replies - 1 through 4 (of 4 total)
  • A po dodaniu swojego typu odświeżyłeś/zflushowałeś ustawienia permalinków? :>

    Pamiętam, że to był kiedyś dość częsty błąd. Gdy dodasz nowego CPT, to warto potem wejść w ustawienia permalinków i je zapisać tak, aby WP odświeżył sobie .htaccessy i inne takie…

    Jeśli to nie pomoże, to będziemy kombinować dalej.

    Thread Starter sandblue

    (@sandblue)

    Zmieniłem odnośniki na standardowe, wtedy posty zwykłe mamy jako ?p=ID, a typu autor ?autor=nazwa-autora. Po zmianie na %postname% mam dalej poprzedni błąd, czyli /autor/nazwa-posta/ informuje, że nie znaleziono strony.
    Nie wiem czy o taką zmianę/odświeżenie Tobie chodziło, ale WP chyba nie ma jakiś ustawień zaawansowanych flushowania (jak np. magento)

    Tak, dokładnie o tym myślałem.

    A zrób jeszcze taką rzecz. Z poziomu panelu administratora wejdź w edycję jakiegoś wpisu tego typu i kliknij w przycisk „Zobacz stronę” (czy coś w tym stylu). Jaki adres Ci wtedy otworzy?

    Thread Starter sandblue

    (@sandblue)

    Otwiera adres domena/autor/nazwa-wpisu (przy ustawieniach %postname%).
    Tym sposobem posta nie znajduje i po kliknięciu mam 'Niczego nie znaleziono’. Jak ręcznie zmieniam ?autor=nazwa-wpisu, wtedy znajduje.

    Tak pomyślałem, może konkretne ustawienia bezpośrednich odnośników zastosować, zanim dodam ten typ postu… Albo czy %postname% ustalić przed, czy po dodaniu CPT

Viewing 4 replies - 1 through 4 (of 4 total)
  • Temat ‘własne typy postów’ jest zamknięty na nowe odpowiedzi.