Ovládněte vlastní typy článků v WordPressu: kompletní praktický návod od vytvoření po publikování.

Čtení za 3 minuty.
2026-03-17
2026-06-04
2,437
Získávám provize, když nakupujete prostřednictvím níže uvedených odkazů, aniž by vás to něco stálo navíc.

Co je to vlastní typ článku v WordPressu?

WordPress standardně poskytuje dvě typy obsahu: “Články” (Articles) a “Stránky” (Pages). Při vytváření složitějších webových stránek však často nestačí. Pro takové případy existuje možnost vytvoření vlastních typů článků (Custom Post Types). CPTJe to základní funkce WordPressu, která umožňuje vývojářům vytvářet zcela nové typy obsahu s nezávislou datovou strukturou a administrativním rozhraním. Můžete to chápat jako “šablonu obsahu” určenou k správě konkrétního typu informací.

Například webová stránka pro recenze filmů může používat výchozí typ “Článek” k zveřejňování zpráv, zároveň však může vytvořit vlastní typ článku s názvem “Film”, který bude sloužit k speciální správě informací o jednotlivých filmech. Každý záznam o filmu může obsahovat speciální pole jako režisér, hlavní herci, hodnocení atd. E-shopová webová stránka může vytvořit typ “Produkt”, zatímco webová stránka školy může vytvořit typy “Kurz” nebo “Učitel”. Tímto způsobem lze efektivně organizovat a spravovat různé druhy obsahu. CPTRůzné typy obsahu jsou jasně odděleny, což umožňuje efektivnější správu dat a zároveň poskytuje solidní základ pro další personalizaci šablon a rozšíření funkcí.

Jak vytvořit vlastní typ článku?

V WordPressu existují dvě hlavní metody pro vytvoření vlastních typů článků: registrace pomocí kódu a použití pluginů. Pro vývojáře je zásadní ovládnutí metody registrace pomocí kódu, protože poskytuje nejvyšší flexibilitu a kontrolu, a také usnadňuje správu verzí v tematech nebo vlastních pluginech.

Doporučujeme k přečtení. Kompletní ovládnutí vlastních typů článků v WordPressu: od vytvoření až po pokročilé aplikace

Registrování vlastního typu článku pomocí kódu

Nejstandardnější a nejdoporučenější způsob je v rámci daného tématu… functions.php Použito ve souboru nebo v samostatném funkčním plug-inu. register_post_type Funkce je registrována. Tato funkce přijímá dva parametry: identifikátor vlastního typu článku („slug“) a pole obsahující všechny potřebné parametry.

UltaHost – hosting služby pro weby postavené na platformě WordPress
Záruka vrácení peněz do 30 dnů, neomezený šířka pásma a databáze, bezplatná ochrana proti DDoS útokům. Sleva 501 TP4T při nákupu na 3 roky.

Níže je základní příklad vytvoření vlastního typu článku s názvem “Film”:

function create_movie_post_type() {
    $labels = array(
        'name'               => '电影',
        'singular_name'      => '电影',
        'menu_name'          => '电影管理',
        'add_new_item'       => '添加新电影',
        'edit_item'          => '编辑电影',
        'view_item'          => '查看电影',
    );
    $args = array(
        'labels'             => $labels,
        'public'             => true,
        'publicly_queryable' => true,
        'show_ui'            => true,
        'show_in_menu'       => true,
        'query_var'          => true,
        'rewrite'            => array( 'slug' => 'movie' ),
        'capability_type'    => 'post',
        'has_archive'        => true,
        'hierarchical'       => false,
        'menu_position'      => 5,
        'menu_icon'          => 'dashicons-video-alt',
        'supports'           => array( 'title', 'editor', 'thumbnail', 'excerpt', 'comments' ),
    );
    register_post_type( 'movie', $args );
}
add_action( 'init', 'create_movie_post_type' );

Tento kód funguje tak, že… add_action Hooky funkce se spouštějí při inicializaci WordPressu. create_movie_post_type Funkce. Uvnitř funkce je definováno zobrazení značky. $labels a klíčové parametry $argsKlíčové parametry zahrnují:public Ovládá zobrazení v pozadí i na předním plánu.rewrite Definujte pravidla přepisování URL adres – odkazy na konkrétní film budou nyní vypadat takto: yoursite.com/movie/some-moviehas_archive Rozhodnout, zda má být stránka archivována (např.) yoursite.com/movie/);supports Definice pole určuje funkce, které tento typ obsahu podporuje – např. záhlaví, editor, speciální obrázky atd.

Vytvoření vlastního typu článku pomocí pluginu

Pro uživatele, kteří nejsou obeznámeni s kódem, jsou pluginy vynikající volbou pro rychlé začátky. Custom Post Type UI a Toolset Types jsou dvě velmi populární pluginy. Poskytují intuitivní uživatelské rozhraní, které vám umožňuje definovat požadované funkce jednoduchým způsobem – stačí zaškrtnout příslušné položky a vyplnit formuláře. CPT Různé vlastnosti, jako jsou štítky, úroveň přístupnosti, podporované funkce atd.

Vytvoření jednoduchých a rychlých funkcí pomocí pluginů je sice pohodlné, ale obvykle to vede k dalším dotazům do databáze a konfigurace těchto pluginů závisí na samotných pluginech. Při přesouvání webové stránky na jiný hostitel nebo při provedení významných aktualizací mohou být potřeba další kroky k zajištění toho, aby byly nastavení vlastních typů článků zachována. Proto je pro produkční prostředí nebo projekty vyžadující dlouhodobou údržbu obvykle lepší volbou registrace kódu přímo do systému.

Doporučujeme k přečtení. Průvodce vývojem tem pro WordPress: Vytvoření vysokokvalitních, přizpůsobitelných tem od nuly

Přidání vlastních polí pro vlastní typy článků

Samotný typ příspěvku určený k vlastnímu použití poskytuje pouze strukturální rámec. Chcete-li do něj skutečně uložit jedinečné informace (např. datum vydání filmu nebo jméno režiséra), je potřeba využít vlastní pole (Custom Fields) nebo výkonnější nástroje určené k úpravě metadat (Meta Boxes). WordPress sice obsahuje vestavěný panel pro správu vlastních polí, ale jeho uživatelské rozhraní je jednoduché a funkce omezené, což jej činí nevhodným pro redaktory obsahu.

Použijte plugin pro pokročilá vlastní pole.

Plugin Advanced Custom Fields (ACC) je průmyslovým standardem pro práci s vlastními polemi. Umožňuje vám prostřednictvím grafického rozhraní nastavovat vlastní pole pro různé typy článků (včetně těch, které vytváříte vy). CPTVytvářejte různé typy skupin polí, jako jsou textová pole, obrázky, výběrová políčka, asociace atd.

Například, pro “film”.” CPT Vytvořte skupinu polí obsahujících “režiséra”, “hlavního herce” a “rok vydání”. Po instalaci a aktivaci doplňku ACF přejděte na jeho nastavení, vytvořte novou skupinu polí a nastavte pravidlo umístění tak, aby se tato skupina zobrazovala pouze u článků typu “Film”. Poté můžete postupně přidat pole “Režisér” (textové pole), “Hlavní herec” (textové pole) a “Rok vydání” (číselné pole). Po uložení uvidíte tyto přehledné pole při úpravě obsahu filmů v administraci.

Shared hosting na hosting.com
Vysoký výkon, vybavený procesorem AMD EPYC, úložištěm NVMe SSD a LiteSpeedem, nepřetržitá interní podpora odborníků 24 hodin denně a 7 dní v týdnu, pokročilá bezpečnostní opatření včetně SSL, ochrany proti útokům hrubou silou, malwaru a DDoS, úspora až 731 TB/měsíc.

Vytvoření vlastního metadokumentu pomocí kódu

Pokud si přejete plnou kontrolu pomocí kódu, můžete pro své projekt… CPT Vývoj vlastních metaboxů zahrnuje použití API metaboxů v WordPressu a funkcí určených k jejich ukládání. Ačkoli je objem kódu poměrně velký, poskytuje to plnou volnost při přizpůsobování.

Níže je zjednodušený příklad, který ukazuje, jak přidat pole “Režisér” k položce “Film”:

// 1. 添加元框
function add_movie_director_meta_box() {
    add_meta_box(
        'movie_director_meta_box', // 元框ID
        '导演信息', // 元框标题
        'render_movie_director_meta_box', // 回调函数,用于输出HTML
        'movie', // 目标文章类型
        'side', // 位置
        'default' // 优先级
    );
}
add_action( 'add_meta_boxes', 'add_movie_director_meta_box' );

// 2. 渲染元框内容
function render_movie_director_meta_box( $post ) {
    // 获取已保存的值
    $director = get_post_meta( $post->ID, '_movie_director', true );
    // 添加安全字段
    wp_nonce_field( 'movie_director_nonce_action', 'movie_director_nonce' );
    // 输出HTML
    echo '<label for="movie_director">导演姓名:</label>';
    echo '<input type="text" id="movie_director" name="movie_director" value="' . esc_attr( $director ) . '" style="width:100%;" />';
}

// 3. 保存元框数据
function save_movie_director_meta_data( $post_id ) {
    // 检查nonce、权限、自动保存等
    if ( ! isset( $_POST['movie_director_nonce'] ) || ! wp_verify_nonce( $_POST['movie_director_nonce'], 'movie_director_nonce_action' ) ) {
        return;
    }
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
        return;
    }
    if ( ! current_user_can( 'edit_post', $post_id ) ) {
        return;
    }
    // 保存数据
    if ( isset( $_POST['movie_director'] ) ) {
        update_post_meta( $post_id, '_movie_director', sanitize_text_field( $_POST['movie_director'] ) );
    }
}
add_action( 'save_post', 'save_movie_director_meta_data' );

Tento kód vytvoří metapole umístěnou v postranní liště, která obsahuje pole pro zadávání jména režiséra. Při ukládání dat jsou použity standardní bezpečnostní postupy WordPressu, včetně… nonce Ověřování, kontrola oprávnění a zabránění opakovanému zpracování při automatickém uložení. Uložená data jsou poté… update_post_meta Funkce jsou uloženy v… wp_postmeta V tabulce.

Doporučujeme k přečtení. Návod k použití pluginu WooCommerce: Kompletní průvodce od instalace a konfigurace až po provoz e-shopu

Vytvořte šablonový soubor pro vlastní typ článku.

Vytvořeno. CPT Po naplnění obsahu je potřeba zajistit šablonu pro jeho zobrazení na stránce. WordPress používá systém hierarchie šablon a automaticky najde odpovídající šablonový soubor pro zobrazení vašeho obsahu.

Šablona pro typ jediného článku

Když uživatel navštíví informace o konkrétním filmu (např. yoursite.com/movie/inceptionPři vyhledávání šablonových souborů WordPress postupuje v následujícím pořadí:
1. single-movie.php (nejkonkrétněji)
2. single.php
3. singular.php
4. index.php

Shared hosting od InterServeru
Sdílený hosting za 1 TB + 5 TB měsíčně za 2,50 USD, slevový kód tryinterserver pro první měsíc za 1 TB + 5 TB za 0,1 USD, a 461 skriptů cloudových aplikací k jednoduché instalaci.

Proto je nejlepší praxí vytvořit v složce se svými tematikami soubor s názvem single-movie.php Soubor. V tomto souboru můžete úplně přizpůsobit způsob zobrazení filmu a použít předem vytvořená vlastní pole.

<?php get_header(); ?>
<article id="post-<?php the_ID(); ?>" no numeric noise key 1008>
    <header class="entry-header">
        <h1 class="entry-title"><p><strong> Řekněte mi něco o sobě.</strong></p></h1>
        <div class="entry-meta">
            <span>导演:</span>
        </div>
    </header>
    <div class="entry-content">
        
        <!-- 显示其他自定义字段,如主演、上映年份 -->
        <p><strong>Hlavní role:</strong><?php the_field( 'lead_actor' ); ?></p>
        <p><strong>Rok vydání:</strong><?php the_field( 'release_year' ); ?></p>
    </div>
</article>
<?php get_footer(); ?>

Pokud používáte plugin ACF, můžete využít funkce, které nabízí. the_field() Funkce umožňuje pohodlné výstupní zobrazení hodnot polí. Pokud jsou pole uložena pomocí vlastního kódu, je použit… get_post_meta() Funkce.

Šablona stránky archivu

Když uživatel navštíví stránku se seznamem filmů (např.) yoursite.com/movie/Při spuštění WordPress hledá následující:
1. archive-movie.php
2. archive.php
3. index.php

Vytvořit archive-movie.php Ve souboru můžete použít cykly z WordPressu k výpisu všech filmů, a také můžete upravit dotaz nebo použít stránkování.

<?php get_header(); ?>
<h1>Filmová knihovna</h1>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    <article>
        <h2><a href="/cs/</?php the_permalink(); ?>"><p><strong> Řekněte mi něco o sobě.</strong></p></a></h2>
        <?php the_post_thumbnail( 'medium' ); ?>
        <p>导演:</p>
        <?php the_excerpt(); ?>
    </article>
<?php endwhile; the_posts_navigation(); else : ?>
    <p>V tuto chvíli není žádný film k dispozici.</p>

Závěr

Ovládnutí vlastních typů článků v WordPressu je klíčovým krokem k odchodu od jednoduchých blogových stránek a vytvoření moderních webových stránek s bohatými funkcemi a jasnou strukturou. Začněte tím, že… register_post_type Funkce začíná registrací kódu, poté se přidávají speciální pole pomocí pluginu ACF nebo vlastních metadokumentů, a nakonec se vytvářejí jednotlivé prvky podle struktury šablon. single-{cpt}.phparchive-{cpt}.php Šablony soubory – celý tento proces tvoří jeden kompletní celek. CPT Vytvoření pracovního postupu pro vývoj.

Díky praktickému použití jsme vytvořili typ obsahu “Film”, který má vlastní nabídku v administraci, speciální datové pole a přizpůsobené zobrazení na stránkách. Tato metodologie lze bez problémů přenést na jakýkoli typ obsahu – ať už jde o “Produkty”, “Portfolia” nebo “Akce”. Porozumění a využití těchto principů výrazně zlepší vaše schopnosti jakoho vývojáře WordPressu a umožní vám vytvářet pro uživatele skutečně personalizované digitální zážitky.

Časté dotazy

Jaký je rozdíl mezi vlastními typy článků a vlastními klasifikacemi?

Přizpůsobené typy článků slouží k definování nových typů obsahu, jako jsou “filme” nebo “produkty”. Přizpůsobené klasifikace (např. tagy nebo rozšíření katalogů kategorií) pak slouží k třídění a organizaci tohoto obsahu. Jeden přizpůsobený typ článku může být spojen s více přizpůsobenými klasifikacemi. Například typ článku “Film” může obsahovat různé tagy, které popisují různé aspekty tohoto typu obsahu. CPT Je možné propojit dvě vlastní klasifikace: “Typ” (akce, komedie) a “Region” (čínština, Hollywood).

Měl bych registrovat CPT v souboru functions.php daného tématu, nebo v samostatném pluginu?

To závisí na komplexitě projektu a požadavcích na přenositelnost. U projektů, které jsou úzce vázány na konkrétní téma a nejsou znovu použitelné… CPTMůže být umístěno do tématu. functions.php Ano. Ale nejlepší praxí je vytvořit samostatný funkční plugin, který bude obsahovat všechny kódy potřebné k registraci vlastních typů článků a kategorií. Díky tomu budou tyto typy článků a jejich data zachovány i po změně tématu, což umožní lepší oddělení “funkcí” webové stránky od jejího “vzhledu”.

Jak změnit fixní strukturu odkazů u stávajících vlastních typů článků?

Můžete se registrovat zde. CPT V průběhu času… rewrite Nastavení parametrů lze provést také po registraci. register_post_type_args Filtry je nutné upravit. Po úpravě je třeba navštívit stránku “Nastavení” → “Fixní odkazy” v administraci WordPress a jednoduše kliknout na “Uložit změny”, aby byly přepsaná pravidla aktualizována. Jinak nová struktura odkazů nemusí být funkční.

Proč nevidím v předním rozhraní vlastní typ článku, který jsem vytvořil?

To je obvykle způsobeno nesprávným nastavením registračních parametrů. Nejprve prosím zkontrolujte funkci registrace. $args in the array 'public''publicly_queryable' Jsou všechny parametry nastaveny? trueZadruhé, ujistěte se, že… 'show_ui''show_in_nav_menus' Také… trueNa závěr zkontrolujte soubor šablony (template file).single-{cpt}.phparchive-{cpt}.phpBylo správně vytvořeno a nachází se v kořenovém adresáři tématu akce?