Cómo modificar el enlace permanente de un tipo de publicación personalizada
php, ve al fondo y revisa el menú, encontrarás una etiqueta adicional llamada "Libros"
function codex_custom_init('init', 'codex_custom_init');
function codex_custom_init( ' init', 'codex_custom_init' );
add_action( 'init', 'codex_custom_init' );
función codex_custom_init() {
$etiquetas = matriz (
'nombre' =gt; _x('Libros', 'nombre general del tipo de publicación'),
'singular_name' =gt; _x('Libro', 'tipo de publicación nombre singular'),
'add_new' =gt; _x('Agregar nuevo', 'libro'),
'add_new_item' =gt;__('Agregar nuevo libro' ) ,
'edit_item' =gt; __('Editar libro'),
'new_item' =gt __('Nuevo libro'),
'all_items' =gt; __('Todos los libros'),
'view_item' =gt;__('Ver libro'),
'search_items' =gt; ( 'Buscar libros'),
'not_found' =gt; __('No se encontraron libros'),
'not_found_in_trash' =gt __('No se encontraron libros en la Papelera) ' ),
'parent_item_colon' =gt; '',
'menu_name' =gt; ' Libros'
); > $args = array(
'labels' =gt; $labels,
'public' =gt; true,
'public_queryable' =gt; verdadero,
'show_ui' =gt; verdadero,
'show_in_menu' =gt;
'query_var' =gt; >
'rewrite' => verdadero,
'capability_type' => 'publicación',
'has_archive' => verdadero,
'jerárquico ' =gt; false,
'menu_position' =gt; null,
'supports' =gt.array( 'título', 'editor', 'autor', 'miniatura' ', 'extracto', 'comentarios' )
);
Register_post_type('libro', $args
}
El formato de enlace permanente predeterminado para tipos de publicaciones personalizadas
El formato de enlace permanente predeterminado para tipos de publicaciones personalizadas es "post-slug/postname", si no se especifica ningún título, el tipo de artículo se utiliza como título. En este ejemplo, no se especifica ningún título y el título de todos los artículos es libro.
Los parámetros relacionados con enlaces fijos incluyen reescritura y etiquetas.
El parámetro de reescritura especifica si se activa la función de enlace fijo. El valor predeterminado es verdadero. Si se establece en falso, se supone que lo creé. Una publicación tipo libro con el título "Libro de Harry Potter" generaría un enlace como este:
Si se incluye o no una barra invertida al final depende de la configuración; se recomienda no hacerlo. incluya barras invertidas aquí; de lo contrario,
puede apuntar a la misma dirección, lo que no es compatible con los motores de búsqueda. Compatible con motores de búsqueda.
Cómo cambiar el formato de enlace fijo de un tipo de artículo personalizado
Supongamos que creamos un artículo tipo libro y usamos chino como título del artículo, entonces el enlace generado por defecto también be Está en chino, que suele estar codificado y es relativamente largo, lo que hace que sea incómodo compartirlo. Puede ingresar el título en inglés manualmente o cambiar el formato del enlace permanente para acortarlo.
Para hacer esto:
Cree una nueva regla de reescritura para traducir URL
Agregue un filtro (post_type_link) para que cuando la función get_the_permalink() devuelva el enlace correcto formato
Hay dos fragmentos de código a continuación que pueden cumplir con este requisito. El código se agrega a funciones.php. Debe ingresar la configuración de fondo: enlace permanente y volver a guardar el enlace permanente antes de que el código pueda entrar en vigor. .
Fragmento de código 1
add_action('init', 'custom_book_rewrite');
función custom_book_rewrite() {
global $wp_rewrite ;
$queryarg = 'post_type=bookamp;p=';
$wp_rewrite-gt;add_rewrite_tag('qid', '([^/] )', $queryarg) ;
$wp_rewrite-gt;add_permastruct('libro', '/book/qid.html', false);
}
add_filter(' post_type_link ', 'custom_book_permalink', 1, 3);
function custom_book_permalink($post_link, $post = 0) {
global $wp_rewrite;
if ( $post-gt; post_type == 'libro' ){
$post = amp; get_post($id);
if ( is_wp_error( $post ) )
return $post;
$newlink = $wp_rewrite-gt; get_extra_permastruct('libro');
$newlink = str_replace("qid",$post-gt; ID,$newlink);
$newlink = home_url(user_trailingslashit($newlink));
Devuelve $newlink;
} else {
Devolver $post_link;
}
}
}