WordPress
Tipos de correos personalizados
Buscar..
Sintaxis
- register_post_type ($ post_type, $ args);
Parámetros
Parámetro | Detalles |
---|---|
$ post_type | (cadena) (Requerido) |
$ args | (array / string) (Opcional) |
Registro de un tipo de mensaje personalizado
Supongamos que tiene un sitio web de biblioteca y desea tener un tipo de publicación personalizado llamado Libros . Se puede registrar como
function create_bookposttype() {
$args = array(
'public' => true,
'labels' => array(
'name' => __( 'Books' ),
'singular_name' => __( 'Book' )
),
);
register_post_type( 'custompost_books', $args );
}
add_action( 'init', 'create_bookposttype' );
y, por más simple que sea, ahora tiene un tipo de publicación personalizado registrado.
Este fragmento de código se puede colocar en su archivo de functions.php
tema.php, o dentro de una estructura de complemento.
Agregar tipos de publicaciones personalizados a la consulta principal
Registrar un tipo de publicación personalizada no significa que se agregue a la consulta principal automáticamente. pre_get_posts
usar el filtro pre_get_posts
para agregar tipos de publicaciones personalizadas a la consulta principal.
// Show posts of 'post' and 'book' custom post types on home page
add_action( 'pre_get_posts', 'add_my_post_types_to_query' );
function add_my_post_types_to_query( $query ) {
if ( is_home() && $query->is_main_query() )
$query->set( 'post_type', array( 'post', 'book' ) );
return $query;
}
Agregar tipos de publicaciones personalizadas a la fuente RSS principal
Registrar un tipo de publicación personalizada no significa que se agregue a la fuente RSS principal automáticamente. Debe usar el filtro de request
para agregar tipos de publicación personalizados a la fuente RSS principal.
// Add 'books' custom post types on main RSS feed
function add_book_post_types_to_rss($qv) {
if (isset($qv['feed']) && !isset($qv['post_type']))
$qv['post_type'] = array('post', 'books', );
return $qv;
}
add_filter('request', 'add_book_post_types_to_rss');
Registrar tipo de mensaje personalizado
if ( ! function_exists('products_post_type') ) {
function products_post_type() {
$labels = array(
'name' => _x( 'Products', 'Post Type General Name', 'text_domain' ),
'singular_name' => _x( 'Product', 'Post Type Singular Name', 'text_domain' ),
'menu_name' => __( 'Products', 'text_domain' ),
'name_admin_bar' => __( 'Product', 'text_domain' ),
'archives' => __( 'Item Archives', 'text_domain' ),
'attributes' => __( 'Item Attributes', 'text_domain' ),
'parent_item_colon' => __( 'Parent Product:', 'text_domain' ),
'all_items' => __( 'All Products', 'text_domain' ),
'add_new_item' => __( 'Add New Product', 'text_domain' ),
'add_new' => __( 'New Product', 'text_domain' ),
'new_item' => __( 'New Item', 'text_domain' ),
'edit_item' => __( 'Edit Product', 'text_domain' ),
'update_item' => __( 'Update Product', 'text_domain' ),
'view_item' => __( 'View Product', 'text_domain' ),
'view_items' => __( 'View Items', 'text_domain' ),
'search_items' => __( 'Search products', 'text_domain' ),
'not_found' => __( 'No products found', 'text_domain' ),
'not_found_in_trash' => __( 'No products found in Trash', 'text_domain' ),
'featured_image' => __( 'Featured Image', 'text_domain' ),
'set_featured_image' => __( 'Set featured image', 'text_domain' ),
'remove_featured_image' => __( 'Remove featured image', 'text_domain' ),
'use_featured_image' => __( 'Use as featured image', 'text_domain' ),
'insert_into_item' => __( 'Insert into item', 'text_domain' ),
'uploaded_to_this_item' => __( 'Uploaded to this item', 'text_domain' ),
'items_list' => __( 'Items list', 'text_domain' ),
'items_list_navigation' => __( 'Items list navigation', 'text_domain' ),
'filter_items_list' => __( 'Filter items list', 'text_domain' ),
);
$args = array(
'label' => __( 'Product', 'text_domain' ),
'description' => __( 'Product information pages.', 'text_domain' ),
'labels' => $labels,
'supports' => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'custom-fields', ),
'taxonomies' => array( 'category', 'post_tag' ),
'hierarchical' => false,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_position' => 5,
'menu_icon' => 'dashicons-products',
'show_in_admin_bar' => true,
'show_in_nav_menus' => true,
'can_export' => true,
'has_archive' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'capability_type' => 'page',
'show_in_rest' => true,
);
register_post_type( 'product', $args );
}
add_action( 'init', 'products_post_type', 0 );
}
Tipo de publicación personalizada utilizando Twenty Fifteen WordPress Theme
Puedes usar cualquier nombre para la función.
function custom_postype(){
register_post_type('cus_post',array(
'labels'=>array(
'name'=>'khaiyam'// Use any name you want to show in menu for your users
),
'public'=>true,// **Must required
'supports'=>array('title','editor','thumbnail')// Features you want to provide on your posts
));
}
add_action('after_setup_theme','custom_postytpe');
o
add_action('init','custom_postytpe');
Puede usar cualquiera de los ganchos que desee pero, por supuesto, tienen diferentes significados y usos.
Tipo de publicación personalizada en la búsqueda por defecto
Puede agregar publicaciones de tipo de publicación personalizadas en la búsqueda de wordpress predeterminada. Agregue el siguiente código en las funciones del tema.php
function my_search_filter($query) {
if ( !is_admin() && $query->is_main_query() ) {
if ($query->is_search) {
$query->set('post_type', array( 'news','post','article' ) );
}
}
}
add_action('pre_get_posts','my_search_filter');