Director:
Género: ID, 'movie_reviews_movie_genre', ");?>
Clasificación: '; else echo ''; ?>
Antes de sumergirme en este tutorial, lea mi primer tutorial sobre tipos de mensajes personalizados, donde he explicado algunos de los aspectos importantes de los CPT (tipos de mensajes personalizados). En este tutorial exploraremos más acerca de esta maravillosa característica en WordPress.
Este tutorial cubre cómo crear taxonomías personalizadas, columnas de administración, filtros de taxonomía y una página de archivo para su CPT. Vamos a empezar.
Las taxonomías son una excelente manera de agrupar cosas y ayudarnos a buscar publicaciones que pertenecen a un grupo específico. En WordPress generalmente usamos Categorías y Etiquetas como taxonomías. Los pasos a continuación explican cómo crear taxonomías personalizadas para su CPT..
Abra su archivo de plugin, en nuestro caso Movie-Reviews.php y agrega el siguiente código para registrar la función personalizada.
add_action ('init', 'create_my_taxonomies', 0);
function create_my_taxonomies () register_taxonomy ('movie_reviews_movie_genre', 'movie_reviews', array ('labels' => array ('name' => 'Movie Genre', 'add_new_item' => 'Add New Movie Genre', 'new_item_name' = > "Nuevo género tipo de película"), 'show_ui' => true, 'show_tagcloud' => false, 'hierarchical' => true));
Aquí el register_taxonomy
La función hace todo el trabajo duro de crear una taxonomía personalizada (en nuestro caso, una categoría) con el nombre 'movie_reviews_movie_genre
'para el tipo de mensaje personalizado'críticas de cine
'. Las etiquetas definen las diferentes cadenas utilizadas en la sección de administración de la taxonomía..
'show_ui' => true
Se utiliza para hacer visible el editor de taxonomía en el panel de control..'show_tagcloud' => false
Decodificar si la nube de etiquetas debe ser visible. En nuestro caso está deshabilitado..'hierarchical' => true
Decodifica el formato de la taxonomía personalizada..Nota: 'jerárquico' => falso
convierte las categorías en etiquetas.
Después de guardar el Movie-Reviews.php archivo, abra su archivo de plantilla personalizada, en nuestro caso single-movie_reviews.php y agrega lo siguiente resaltado Código para hacer visibles las categorías en nuestros posts..
'críticas de cine', ); $ loop = new WP_Query ($ mypost); ?> have_posts ()): $ loop-> the_post ();?>> Título:
Director:
Género: ID, 'movie_reviews_movie_genre', ");?>
Clasificación: '; else echo ''; ?>
Aquí hemos agregado una taxonomía personalizada 'Género de película' en nuestras reseñas de películas CPT. Ahora podremos agregar nuevas categorías desde el panel de administración y asignar cada una de ellas a nuestro CPT.
En la página de lista de CPT de administración de WordPress, de manera predeterminada, existen dos columnas, Fecha y Comentarios, a través de las cuales podemos ordenar esos elementos de CPT. Para agregar columnas adicionales y clasificación, siga los pasos que se indican a continuación..
Abra el archivo de plugin Movie-Reviews.php y agregue la siguiente línea de código para registrar una función que se llamará cuando se esté preparando la página de lista de Críticas de películas.
add_filter ('manage_edit-movie_reviews_columns', 'my_columns');
Aquí hemos utilizado el filtro variable. manage_edit- (Custom_Post_Type) _columns
, que pasa la lista de columnas del CPT como un argumento a la función.
function my_columns ($ columnas) $ columnas ['movie_reviews_director'] = 'Director'; $ column ['movie_reviews_rating'] = 'Rating'; unset ($ columnas ['comentarios')); devuelve $ columnas;
Aquí hemos añadido dos columnas: Director y Clasificación en el panel de administración del CPT y también eliminó la columna Comentarios del listado.
Registrar una función para rellenar las columnas..
add_action ('manage_posts_custom_column', 'populate_columns');
function populate_columns ($ column) if ('movie_reviews_director' == $ column) $ movie_director = esc_html (get_post_meta (get_the_ID (), 'movie_director', true)); echo $ movie_director; elseif ('movie_reviews_rating' == $ column) $ movie_rating = get_post_meta (get_the_ID (), 'movie_rating', true); echo $ movie_rating. ' estrellas';
Aquí, ya que la función se ejecuta cuando se procesa cualquiera de las columnas CPT, comprueba las columnas solicitadas actualmente antes de repetirlas. Hemos utilizado el get_the_ID ()
función para recuperar el índice de la fila actual y luego a su vez han utilizado el get_post_meta
para recuperar los datos en la columna.
Ahora, registremos una función para que se llame cuando WordPress identifique columnas clasificables en CPT.
add_filter ('manage_edit-movie_reviews_sortable_columns', 'sort_me');
función sort_me ($ columnas) $ columnas ['movie_reviews_director'] = 'movie_reviews_director'; $ columnas ['movie_reviews_rating'] = 'movie_reviews_rating'; devuelve $ columnas;
Esta función identifica dos columnas para hacerlas clasificables y luego devuelve la matriz. Pero nuestro trabajo aún no ha terminado..
add_filter ('request', 'column_ordering'); add_filter ('request', 'column_orderby'); function column_orderby ($ vars) if (! is_admin ()) devuelve $ vars; if (isset ($ vars ['orderby']) && 'movie_reviews_director' == $ vars ['orderby']) $ vars = array_merge ($ vars, array ('meta_key' => 'movie_director', 'orderby' = > 'meta_valor')); elseif (isset ($ vars ['orderby']) && 'movie_reviews_rating' == $ vars ['orderby']) $ vars = array_merge ($ vars, array ('meta_key' => 'movie_rating', 'orderby' => 'meta_value_num')); devuelve $ vars;
La función anterior está asociada con el filtro de solicitud y agrega elementos a la matriz de consulta, en función de las variables en la URL de consulta. En realidad, WordPress no sabe cómo ordenar por los campos 'Director de película' o 'Clasificación de película', por lo que debemos enseñar a WordPress cómo hacerlo a través de esta función.
Hemos añadido con éxito dos columnas clasificables en la sección de administración.
Aquí veremos cómo las taxonomías personalizadas (en este caso, las categorías) se pueden usar como un filtro adicional en la página de listado de CPT en el administrador de WordPress, para que los administradores puedan mostrar los elementos de CPT que pertenecen a una categoría específica.
Abra su archivo de complemento y agregue el siguiente código para registrar una función a la que se va a llamar cuando WordPress se esté preparando para mostrar la lista desplegable de filtros.
add_action ('restrict_manage_posts', 'my_filter_list');
function my_filter_list () $ screen = get_current_screen (); global $ wp_query; if ($ screen-> post_type == 'movie_reviews') wp_dropdown_categories (array ('show_option_all' => 'Mostrar todos los géneros de película', 'taxonomy' => 'movie_reviews_movie_genre', 'name' => 'movie oficial_movie_genre', 'orderby '=>' nombre ',' selected '=> (isset ($ wp_query-> query [' movie_reviews_movie_genre '])? $ wp_query-> query [' movie_reviews_movie_genre ']: "),' hierarchical '=> false,' depth '=> 3,' show_count '=> false,' hide_empty '=> true,));
Aquí hemos utilizado una variable global para conocer el tipo de publicación que se muestra y también usamos una variable de consulta posterior para verificar si ya existe un filtro y, en consecuencia, establecer el filtro. los wp_dropdown_categories
La función se utiliza para mostrar todas las taxonomías registradas con los géneros de películas. Los 'orden por
','show_count
','hide_empty
','profundidad
'etc. son diferentes argumentos que especifican la clasificación, muestran los elementos cuentan en cada categoría, ocultan categorías no asociadas, determinan la profundidad máxima que se mostrará para las categorías jerárquicas respectivamente.
Ahora, una vez que se haya preparado la lista desplegable de filtros, escribiremos un código para mostrar los resultados filtrados. Registre una función que se llamará cuando se prepare la consulta de visualización posterior..
add_filter ('parse_query', 'perform_filtering');
function perform_filtering ($ query) $ qv = & $ query-> query_vars; if (($ qv ['movie_reviews_movie_genre']) && is_numeric ($ qv ['movie_reviews_movie_genre'))) $ term = get_term_by ('id', $ qv ['movie_reviews_movie_genre'], 'movieillance_movie_genre'); $ qv ['movie_reviews_movie_genre'] = $ term-> slug;
los filtrar
La función recibe el objeto de consulta posterior de WordPress actual y luego comienza con un puntero a las variables de consulta almacenadas dentro del objeto de consulta. Luego verifica si un género de película es una parte de las variables de consulta y luego ejecuta la consulta.
Ahora podrás usar el filtro para mostrar las películas por sus géneros.
Como hemos creado una plantilla personalizada para nuestro CPT, también podemos crear una página de archivo personalizada que anule la plantilla de archivo predeterminada..
Abra el archivo de plugin Movie-Reviews.php y el agregar el código resaltado en el include_template_function
función.
La función include_template_function ($ template_path) if (get_post_type () == 'movie_reviews') if (is_single ()) // comprueba si el archivo existe en el tema primero, // de lo contrario, sirva el archivo desde el complemento if ($ theme_file = Locate_template (array ('single-movie_reviews.php'))) $ template_path = $ theme_file; else $ template_path = plugin_dir_path (__FILE__). '/single-movie_reviews.php'; elseif (is_archive ()) if ($ theme_file = Locate_template (array ('archive-movie_reviews.php'))) $ template_path = $ theme_file; else $ template_path = plugin_dir_path (__FILE__). '/archive-movie_reviews.php'; devolver $ template_path;
WordPress busca en el directorio de temas un archivo de plantilla de archivo antes de usar el predeterminado. Esta función comprueba si el usuario ha proporcionado una plantilla de archivo en el directorio del tema, de lo contrario, busca el archivo en la carpeta del complemento..
Guarde y cierre el archivo de complemento y luego cree un nuevo archivo llamado archive-movie_reviews.php y añade el siguiente código en él.
Críticas de cine
max_num_pages) && $ wp_query-> max_num_pages> 1) ?>
Título Director ">
Aquí hemos utilizado el bucle para recorrer las entradas de la publicación y luego mostrarlas utilizando un diseño de tabla. También hemos definido un menú de navegación si hay más elementos que el número máximo configurado en la configuración de WordPress. Los menús de navegación se muestran con el next_post_links
y enlaces_post anteriores
funciones.
Hemos utilizado lo global. wp_query
Objeto que contiene los datos sobre la consulta actualmente ejecutada, para representar el contenido de la página. los get_post_meta
La función se ha utilizado para recuperar datos de campo personalizados..
Guarde el archivo y consulte la página de archivo para ver la lista de archivos de Movie Reviews.
Aquí llegamos al final de este tutorial. Espero que hayas podido comprender el significado de los tipos de publicación personalizados. Hay más para explorar, solo juega con ello.
Gracias por leer y no dude en darnos su opinión..