WordPress Development Asked by ncti on October 30, 2021
I have problem with custom post type. In BO url’s are ok example: page.pl/post_type_name/post_title
.
When I try use get_the_permalink()
or the_permalink()
it return url like:
/?post_type=cpt_wydarzenia&p=258
Code:
$args = array(
"label" => __( "Wydarzenia", "vilo" ),
'labels' => $labels,
'hierarchical' => false,
'supports' => array('title', 'editor'),
//'taxonomies' => array( 'category', 'post_tag' ),
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_position' => 5,
'show_in_nav_menus' => true,
'publicly_queryable' => true,
'exclude_from_search' => false,
'has_archive' => false,
'query_var' => true,
'can_export' => true,
'rewrite' => array(
'slug' => 'wydarzenia',
'with_front' => true
),
'capability_type' => 'post',
'menu_i
con' => 'dashicons-book',
'supports' => array(
'title',
'thumbnail',
'comments',
'editor'),
);
register_post_type( 'cpt_wydarzenia', $args );
flush_rewrite_rules();
get_permalink()
(which is used by get_the_permalink()
and the_permalink()
) returns the "ugly" URL if the post is not published, e.g. draft or scheduled, but you can use the following function instead which temporarily sets the post status to publish
so that we'd get the pretty URL.
function get_future_permalink( $id ) {
if ( $post = get_post( $id ) ) {
$post->post_status = 'publish';
return get_permalink( $post );
}
return '';
}
So instead of get_permalink( 258 )
, you'd use get_future_permalink( 258 )
, where 258
is the post ID.
Answered by Sally CJ on October 30, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP