Cosa sono i tipi di articolo personalizzati in WordPress?
WordPress offre per impostazione predefinita due tipi di contenuti: “Articoli” e “Pagine”. Tuttavia, quando si costruiscono siti web complessi, questi tipi di contenuti spesso non sono sufficienti. In questi casi, è possibile personalizzare i tipi di post (Custom Post Type, in breve CPT). CPTÈ una funzionalità fondamentale di WordPress che consente agli sviluppatori di creare nuovi tipi di contenuto con strutture di dati indipendenti e interfacce di gestione back-end. Può essere considerato una sorta di “modello di contenuto” utilizzato per gestire informazioni di un tipo specifico.
Ad esempio, un sito di recensioni di film potrebbe utilizzare il tipo di articolo predefinito per pubblicare notizie, creando al contempo un tipo di articolo personalizzato chiamato “Film” per gestire in modo specifico le voci relative ai film. Ogni voce sui film potrebbe contenere informazioni esclusive come regista, attori protagonisti e valutazioni. Un sito di e-commerce potrebbe creare il tipo di articolo “Prodotto”, mentre un sito scolastico potrebbe creare i tipi di articolo “Corso” o “Insegnante”. Utilizzando questi tipi di articoli personalizzati, è possibile organizzare e gestire i contenuti in modo più efficace e appropriato. CPTI diversi tipi di contenuti vengono chiaramente separati, il che rende la gestione dei dati più efficiente e getta le basi solide per la personalizzazione dei modelli e l’espansione delle funzionalità in futuro.
Come creare un tipo di articolo personalizzato?
Esistono due principali metodi per creare tipi di articoli personalizzati in WordPress: l’uso del codice per la registrazione e l’utilizzo di plugin. Per i sviluppatori, conoscere il metodo della registrazione tramite codice è di fondamentale importanza, poiché offre la massima flessibilità e controllo, nonché facilita la gestione delle versioni all’interno di temi o plugin personalizzati.
Si consiglia di leggere Padroneggiare completamente i tipi di articoli personalizzati in WordPress: dalla creazione alle pratiche di utilizzo avanzate。
Registrare un tipo di articolo personalizzato tramite codice
Il modo più standard e consigliato è quello di utilizzare il tema… functions.php Utilizzato in un file o in un plugin funzionale indipendente. register_post_type La funzione viene registrata. Questa funzione accetta due parametri: l’identificatore del tipo di articolo personalizzato (slug) e un array che contiene tutti gli altri parametri necessari.
Ecco un esempio di base per creare un tipo di articolo personalizzato chiamato “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' ); Questo codice funziona attraverso… add_action I “hook” vengono eseguiti durante l’inizializzazione di WordPress. create_movie_post_type Funzione: All’interno della funzione è stata definita la visualizzazione dei tag. $labels e i parametri chiave $argsI parametri chiave includono:public Controlla se visualizzare i contenuti in background o in foreground.rewrite Definire le regole di rimappatura dei URL: in questo caso, i link che puntano a un singolo film saranno… yoursite.com/movie/some-movie;has_archive Decidere se creare una pagina di archiviazione (come…) yoursite.com/movie/);supports L’array definisce le funzionalità supportate da quel tipo di contenuto, come titoli, editor, immagini di rilievo, ecc.
Utilizzare un plugin per creare tipi di articoli personalizzati
Per gli utenti non esperti di codice, i plugin rappresentano una scelta eccellente per iniziare rapidamente a utilizzare nuove funzionalità del sito web. Custom Post Type UI e Toolset Types sono due plugin molto popolari: offrono un’interfaccia utente intuitiva che permette di definire nuovi tipi di contenuti semplicemente selezionando le opzioni desiderate e compilando i moduli appropriati. CPT Diverse proprietà, come l’etichetta, il livello di accessibilità (pubblico/privato), le funzionalità supportate, ecc.
La creazione di funzionalità tramite plugin è semplice e rapida, ma di solito comporta ulteriori interrogazioni al database, inoltre la configurazione di tali plugin dipende direttamente dai plugin stessi. Quando si trasferisce un sito su un altro host o si effettuano aggiornamenti significativi, potrebbero essere necessari passaggi aggiuntivi per garantire che le impostazioni relative ai tipi di articoli personalizzati vengano conservate. Pertanto, per ambienti di produzione o progetti che richiedono manutenzione a lungo termine, l’utilizzo di codice scritto esplicitamente (in modo da poterlo gestire direttamente) rappresenta solitamente la scelta migliore.
Si consiglia di leggere Guida allo sviluppo di temi per WordPress: costruire temi personalizzati ad alte prestazioni da zero。
Aggiungere campi personalizzati per i tipi di articoli personalizzati
I tipi di articoli personalizzati forniscono soltanto un quadro strutturale di base; per memorizzare informazioni uniche (come la “data di uscita” di un film o il “regista”), è necessario utilizzare campi personalizzati (Custom Fields) o strumenti più avanzati come i “Meta Boxes”. WordPress include un pannello dedicato ai campi personalizzati, ma l’interfaccia è semplice e le funzionalità sono limitate, rendendolo poco adatto all’uso da parte degli editor di contenuti.
Utilizzare il plugin per i campi personalizzati avanzati
Il plugin Advanced Custom Fields (ACC) rappresenta lo standard del settore per la gestione dei campi personalizzabili. Ti consente di creare e configurare tali campi tramite un’interfaccia grafica, applicabile a diversi tipi di articoli (inclusi quelli creati da te). CPTÈ possibile creare diversi tipi di gruppi di campi, come testi, immagini, caselle di selezione, relazioni di associazione, ecc.
Ad esempio, per “film”.” CPT Crea un gruppo di campi che includa i seguenti elementi: “Regista”, “Attore protagonista” e “Anno di uscita”. Dopo aver installato e attivato il plugin ACF (Advanced Custom Fields), accedi alla sua pagina di configurazione e crea un nuovo gruppo di campi, impostando la regola di posizionamento su “Tipo di articolo = Film”. Successivamente, aggiungi i campi “Regista” (campo di testo), “Attore protagonista” (campo a area di testo) e “Anno di uscita” (campo numerico). Dopo aver salvato le modifiche, questi campi di input appariranno visivamente durante la modifica dei contenuti relativi ai film nel backend.
Creare un meta-box personalizzato tramite codice
Se desideri controllare tutto esclusivamente tramite codice, puoi procedere come segue: CPT Sviluppare metatag personalizzati richiede l’utilizzo dell’API per i metatag di WordPress nonché delle funzioni di salvataggio disponibili nel sistema. Sebbene il codice da scrivere possa essere piuttosto esteso, ciò offre la massima libertà di personalizzazione.
Ecco un esempio semplificato che mostra come aggiungere un campo “Regista” per i “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' ); Questo codice crea un modulo nascosto (meta box) posizionato nella barra laterale, che contiene un campo per inserire il nome del regista. È importante notare che, durante il salvataggio dei dati, vengono applicati i processi di verifica della sicurezza standard di WordPress, inclusi… nonce Verifica, controllo dei diritti di accesso e prevenzione del trattamento duplicato durante i salvataggi automatici. I dati salvati vengono poi… update_post_meta Le funzioni sono memorizzate in… wp_postmeta Nella tabella.
Si consiglia di leggere Guida all’utilizzo del plugin WooCommerce: dalla installazione e configurazione alla gestione completa del negozio online。
Creare un file di template per un tipo di articolo personalizzato
È stato creato. CPT Dopo aver inserito il contenuto, è necessario fornire un modello per la visualizzazione front-end. WordPress utilizza un sistema gerarchico di modelli e cercherà automaticamente il file di modello appropriato per mostrare il contenuto inserito.
Template per un singolo tipo di articolo
Quando un utente accede alla pagina relativa a un singolo film (ad esempio…) yoursite.com/movie/inceptionQuando si cerca un file di template in WordPress, il sistema esamina i file nella seguente sequenza:
1. single-movie.php (The most specific)
2. single.php
3. singular.php
4. index.php
Pertanto, la pratica migliore è creare una cartella all’interno della tua cartella dei temi con il nome… single-movie.php Il file in questione permette di personalizzare completamente il modo in cui viene visualizzato il film, consentendo l’utilizzo dei campi personalizzati creati in precedenza.
<p><strong>Questo è un testo di esempio.</strong></p>
<article id="post-<?php the_ID(); ?>" no numeric noise key 1008>
<header class="entry-header">
<h1 class="entry-title"><p><strong>Questo testo verrà sostituito dal titolo dell'articolo corrente.</strong></p></h1>
<div class="entry-meta">
<span>导演:</span>
</div>
</header>
<div class="entry-content">
<!-- 显示其他自定义字段,如主演、上映年份 -->
<p><strong>Attori principali:</strong><?php the_field( 'lead_actor' ); ?></p>
<p><strong>Anno di uscita:</strong><?php the_field( 'release_year' ); ?></p>
</div>
</article>
<?php get_footer(); ?> Se si utilizza il plugin ACF, è possibile sfruttare le funzionalità che esso offre. the_field() La funzione consente di visualizzare facilmente i valori dei campi. Se i campi vengono salvati utilizzando codice personalizzato, allora viene utilizzato tale codice per l’output. get_post_meta() Funzione.
Template della pagina di archiviazione
Quando un utente visita la pagina della lista dei film (ad esempio…) yoursite.com/movie/Quando si esegue un comando del genere, WordPress cercherà:
1. archive-movie.php
2. archive.php
3. index.php
Creare archive-movie.php Nel file in questione è possibile utilizzare i cicli forniti da WordPress per elencare tutti i film; inoltre, è possibile personalizzare le query di ricerca o attivare la funzionalità di paginazione.
<p><strong>Questo è un testo di esempio.</strong></p>
<h1>Galleria di film</h1>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<article>
<h2><a href="/it/</?php the_permalink(); ?>"><p><strong>Questo testo verrà sostituito dal titolo dell'articolo corrente.</strong></p></a></h2>
<?php the_post_thumbnail( 'medium' ); ?>
<p>导演:</p>
<?php the_excerpt(); ?>
</article>
<?php endwhile; the_posts_navigation(); else : ?>
<p>Non sono disponibili film in questo momento.</p> Riassumendo
Padroneggiare i tipi di articoli personalizzati in WordPress è un passo fondamentale per superare la semplice struttura di un blog tradizionale e creare siti web moderni, ricchi di funzionalità e ben strutturati. register_post_type Il processo inizia con la registrazione del codice della funzione, prosegue con l’aggiunta di campi speciali tramite il plugin ACF o moduli meta personalizzati, e infine si conclude con la creazione di elementi dedicati in base alla struttura gerarchica dei template. single-{cpt}.php 和 archive-{cpt}.php Il file di template, insieme all’intero processo, costituisce un insieme completo e funzionante. CPT Sviluppo di flussi di lavoro (workflows).
Attraverso la pratica, abbiamo creato un tipo di contenuto dedicato ai “film”, dotato di un menu di back-end indipendente, campi di dati esclusivi e una visualizzazione front-end personalizzata. Questa metodologia può essere facilmente adattata a qualsiasi tipo di contenuto, come “prodotti”, “portafogli di opere” o “eventi”. Comprendere e applicare queste conoscenze migliorerà notevolmente le tue capacità come sviluppatore WordPress, permettendoti di creare esperienze digitali davvero su misura per gli utenti.
FAQ - Domande frequenti
Qual è la differenza tra i tipi di articoli personalizzati e i sistemi di classificazione personalizzati?
I tipi di articoli personalizzati servono per definire nuove entità di contenuto, come “film” o “prodotti”. Le classificazioni personalizzate (ad esempio, etichette o estensioni dei cataloghi) vengono utilizzate per ordinare e organizzare i contenuti. Un tipo di articolo personalizzato può essere associato a più classificazioni personalizzate. Ad esempio, il tipo di articolo “Film” può essere collegato a diverse categorie che descrivono diversi generi o caratteristiche dei film. CPT È possibile associare due categorie personalizzate: “Tipo” (azione, commedia) e “Regione” (cinese, Hollywood).
Dovrei registrare il CPT (Custom Post Type) nel file `functions.php` relativo al tema, oppure in un plugin separato?
Dipende dalla complessità del progetto e dalle esigenze di portabilità. Per i progetti strettamente legati a un tema specifico e non riutilizzabili… CPTPuò essere inserito nel titolo (o nell’oggetto) del messaggio. functions.php Esatto. Tuttavia, la pratica migliore consiste nel creare un plugin funzionale separato per contenere tutti i codici di registrazione relativi ai tipi di articoli personalizzati e alle categorie. In questo modo, anche se si cambia tema, questi tipi di contenuti e i loro dati verranno mantenuti, permettendo una separazione più chiara tra le “funzionalità” del sito e il suo “aspetto estetico”.
Come modificare la struttura del link fisso di un tipo di articolo personalizzato esistente?
Puoi registrarti qui. CPT Durante il processo… rewrite La configurazione dei parametri è disponibile anche dopo l’iscrizione. register_post_type_args È necessario modificare i filtri utilizzati per la generazione dei link fissi. Dopo le modifiche, è indispensabile accedere alla pagina “Impostazioni” → “Link fissi” presente nell’interfaccia di amministrazione di WordPress e cliccare su “Salva modifiche” per aggiornare le regole di rimappatura dei link. Altrimenti, la nuova struttura dei link potrebbe non essere applicata correttamente.
Perché non riesco a vedere i tipi di articoli personalizzati che ho creato nell’interfaccia utente?
Questo problema è solitamente causato da impostazioni errate dei parametri di registrazione. Per prima cosa, verifica la funzione di registrazione. $args Nell’array 'public' 和 'publicly_queryable' Sono stati impostati tutti i parametri? trueIn secondo luogo, assicurarsi che… 'show_ui' 和 'show_in_nav_menus' Anche questo… trueInfine, verificare il file del template.single-{cpt}.php 或 archive-{cpt}.phpÈ stato creato correttamente e si trova nella directory radice del tema dell’evento?
Il prossimo passo, cosa dovremo fare dopo?
Per una lettura approfondita e conoscenza pratica
I seguenti contenuti sono correlati all'argomento di questo articolo e sono adatti per una lettura approfondita. È consigliabile iniziare con l'articolo più vicino al tuo problema attuale, per poi passare gradualmente agli argomenti correlati, il che di solito dà risultati migliori.
- WooCommerce: La guida definitiva per creare siti e-commerce professionali, da zero a uno
- Il significato e il valore di WordPress
- WooCommerce: Guida completa all’uso in cinese per iniziare da zero la creazione del tuo negozio online
- Perché scegliere WooCommerce per costruire il tuo negozio online?
- 7 consigli per plugin WordPress che migliorano le prestazioni del sito web