Taxonomía personalizada específica a un tipo de mensaje personalizado

Quiero crear una taxonomía personalizada que se comporta similar al tipo de correos como una categoría se comporta a un predeterminado entradas (por motivos de /%category%/%postname%/ estructura de permalink) para que los puestos en los tipos de correos personalizados se muestran como www.example.com/ taxonomía personalizada post tipo personalizada nombre/puesto nombre también quiero la caja meta de categoría que aparecen sólo cuando añadimos nuevo post por defecto y no cuando añadimos un nuevo post en el post personalizado tipo y el cuadro taxonomía personalizada que aparecen sólo cuando añadimos un nuevo puesto en la costumbre post tipo y no cuando nuevo añadimos un post por defecto..


Solución

En primer lugar si quieres mostrar taxonomía metabox solamente a correos personalizados tipo luego registrar la taxonomía sólo ese tipo de correos personalizados por pasar el nombre de tipo de mensaje personalizado como argumento en register_taxonomy. De esta manera la taxonomía metabox aparece solamente tipo a medida. Si tu no quieres mostrar categoría metabox correos personalizados tipo entonces eliminar la categoría de término como argumento al registrar correos personalizados tipo y en su lugar incluye el nombre de taxonomía babosa como este \

function themes_taxonomy() {  
    register_taxonomy(  
        'themes_categories',  //The name of the taxonomy. 

Name should be in slug form (must not contain capital letters or spaces). 'themes', //post type name array( 'hierarchical' => true, 'label' => 'Themes store', //Display name 'query_var' => true, 'rewrite' => array( 'slug' => 'themes', // This controls the base slug that will display before each term 'with_front' => false // Don't display the category base before ) ) ); } add_action( 'init', 'themes_taxonomy');
Entonces para cambiar el enlace permanente que he creado a raíz de la función

function filter_post_type_link($link, $post)
{
    if ($post->post_type != 'themes')
        return $link;

    if ($cats = get_the_terms($post->ID, 'themes_categories'))
        $link = str_replace('%themes_categories%', array_pop($cats)->slug, $link);
    return $link;
}
add_filter('post_type_link', 'filter_post_type_link', 10, 2);

Entonces me inscribí un tipo personalizado con temas de babosa como abajo

//Registering Custom Post Type Themes
add_action( 'init', 'register_themepost', 20 );
function register_themepost() {
    $labels = array(
        'name' => _x( 'Themes', 'my_custom_post','custom' ),
        'singular_name' => _x( 'Theme', 'my_custom_post', 'custom' ),
        'add_new' => _x( 'Add New', 'my_custom_post', 'custom' ),
        'add_new_item' => _x( 'Add New ThemePost', 'my_custom_post', 'custom' ),
        'edit_item' => _x( 'Edit ThemePost', 'my_custom_post', 'custom' ),
        'new_item' => _x( 'New ThemePost', 'my_custom_post', 'custom' ),
        'view_item' => _x( 'View ThemePost', 'my_custom_post', 'custom' ),
        'search_items' => _x( 'Search ThemePosts', 'my_custom_post', 'custom' ),
        'not_found' => _x( 'No ThemePosts found', 'my_custom_post', 'custom' ),
        'not_found_in_trash' => _x( 'No ThemePosts found in Trash', 'my_custom_post', 'custom' ),
        'parent_item_colon' => _x( 'Parent ThemePost:', 'my_custom_post', 'custom' ),
        'menu_name' => _x( 'Themes Posts', 'my_custom_post', 'custom' ),
    );

    $args = array(
        'labels' => $labels,
        'hierarchical' => false,
        'description' => 'Custom Theme Posts',
        'supports' => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'revisions', 'post-formats', 'custom-fields' ),
        'taxonomies' => array( 'post_tag','themes_categories'),
        'show_ui' => true,
        'show_in_menu' => true,
        'menu_position' => 5,
        'menu_icon' => get_stylesheet_directory_uri() . 

'/functions/panel/images/catchinternet-small.png', 'show_in_nav_menus' => true, 'publicly_queryable' => true, 'exclude_from_search' => false, 'query_var' => true, 'can_export' => true, 'rewrite' => array('slug' => 'themes/%themes_categories%','with_front' => FALSE), 'public' => true, 'has_archive' => 'themes', 'capability_type' => 'post' ); register_post_type( 'themes', $args );//max 20 charachter cannot contain capital letters and spaces }
Hay pocas cosas que debes recordar al registrar correos personalizados. Cambie el parámetro has_archive a nombre de correos personalizados tipo bala y otra es cambiar el nombre de babosa de reescritura como 'slug' => ' custom_post_type_slug/%taxonomy_slug% ahora cuando añades un nuevo tipo de mensaje en la página tipo escribir correos...

usted verá el enlace permanente como nombre http://www.example.com/wordpress/themes/%themes_categories%/post /. Si no está seleccionada la taxonomía personalizada para este post entonces el enlace permanente permanecerá http://www.example.com/wordpress/themes/%themes_categories%/post nombre / que luego mostrará una petición mal.

Para corregir esto creamos un plazo predeterminado en la taxonomía personalizada. (igual que sin clasificar en categorías) Añadir esto a functions.php
function default_taxonomy_term( $post_id, $post ) {
    if ( 'publish' === $post->post_status ) {
        $defaults = array(
            'themes_categories' => array( 'other'),   //

            );
        $taxonomies = get_object_taxonomies( $post->post_type );
        foreach ( (array) $taxonomies as $taxonomy ) {
            $terms = wp_get_post_terms( $post_id, $taxonomy );
            if ( empty( $terms ) && array_key_exists( $taxonomy, $defaults ) ) {
                wp_set_object_terms( $post_id, $defaults[$taxonomy], $taxonomy );
            }
        }
    }
}
add_action( 'save_post', 'default_taxonomy_term', 100, 2 );
Ahora cuando la taxonomía personalizada se deja en blanco el permlaink se convierte en http://www.example.com/wordpress/themes/other/post nombre / automáticamente.

Al final no te olvides de descarga la nueva versión haciendo clic en guardar cambios en entorno permalink en sección admin si no que se le redireccionará a error 404. Espero que esto te ayude..





Problemas relacionados

¿Cómo relacionar un tipo de mensaje personalizado a otro tipo de correos personalizados

¿Devuelve un único mensaje personalizado tipo resultado cuando comparte una taxonomía personalizada en WP_QUERY?

Pantalla taxonomía personalizada de tipo personalizado

Archivo de taxonomía personalizada no hay mensajes encontrados

Página de taxonomía personalizada

¿Cómo seleccionar una categoría (o taxonomía personalizada) para un tipo de mensaje personalizado?

¿Cómo mostrar una categoría de un tipo específico

¿Taxonomía personalizada como categorías: solapa quitar más utilizado?

Requieren una taxonomía personalizada a comprobarse

Yo no necesito '' Página para ver mi taxonomía personalizada

Quitar columna taxonomía personalizada de mis columnas de tipo de mensaje personalizado

¿' category__and' para taxonomía personalizada?

Source: Stack Exchange Inc; License: cc by-sa 3.0 Contacto / Contact