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.
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-movie;has_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.
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
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}.php 和 archive-{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}.php 或 archive-{cpt}.phpBylo správně vytvořeno a nachází se v kořenovém adresáři tématu akce?
Jaký je další krok? Co bych měl udělat dál?
Další čtení a praktické znalosti
Následující obsah souvisí s tématem tohoto článku a je vhodný k dalšímu prostudování. Obvykle je lepší začít čtením článku, který je nejblíže vašemu aktuálnímu problému, a poté postupně přecházet k souvisejícím tématům.
- Ultimátní průvodce vytvářením webových stránek pomocí WooCommerce: Vytvořte si vlastní online obchod od nuly
- Podrobný rozbor WooCommerce: Vytvoření výkonného e-shopu na WordPressu od nuly
- Kompletní průvodce optimalizací výkonu WordPress: Od jádra až po front-end – celkové zvýšení rychlosti
- Jak nainstalovat a nakonfigurovat SSL certifikát pro váš WordPress web?
- Průvodce optimalizací celosálového cacheování v WooCommerce: Zvýšení rychlosti a konverzních poměrů e-shopů na WordPress