Files
cultureat-bak/wp-content/themes/ccat/includes/cpt/location.php
Pascal Martineau b631e4c06b
All checks were successful
Deploy WordPress and Nuxt / deploy (push) Successful in 55s
feat: initial annonce cpt
2025-09-24 15:53:19 -04:00

89 lines
4.6 KiB
PHP

<?php
// Register 'location' post type
add_action( 'init', 'ccat_location_register_post_type' );
function ccat_location_register_post_type() {
register_post_type(
'location',
array(
'labels' => array(
'name' => __( "Locations", 'ccat' ),
'menu_name' => __( "Locations", 'ccat' ),
'singular_name' => __( "Location", 'ccat' ),
'add_new' => __( "Add New", 'ccat' ),
'add_new_item' => __( "Add New Location", 'ccat' ),
'new_item' => __( "New Location", 'ccat' ),
'edit_item' => __( "Edit Location", 'ccat' ),
'view_item' => __( "View Location", 'ccat' ),
'view_items' => __( "View Locations", 'ccat' ),
'search_items' => __( "Search Locations", 'ccat' ),
'not_found' => __( "No Locations found", 'ccat' ),
'not_found_in_trash' => __( "No Locations found in trash", 'ccat' ),
'parent_item_colon' => __( "Parent Location:", 'ccat' ),
'all_items' => __( "All Locations", 'ccat' ),
'archives' => __( "Location Archives", 'ccat' ),
'attributes' => __( "Location Attributes", 'ccat' ),
'insert_into_item' => __( "Insert into Location", 'ccat' ),
'uploaded_to_this_item' => __( "Uploaded to this Location", 'ccat' ),
'featured_image' => __( "Featured Image", 'ccat' ),
'set_featured_image' => __( "Set featured image", 'ccat' ),
'remove_featured_image' => __( "Remove featured image", 'ccat' ),
'use_featured_image' => __( "Use as featured image", 'ccat' ),
'filter_items_list' => __( "Filter Locations list", 'ccat' ),
'items_list_navigation' => __( "Locations list navigation", 'ccat' ),
'items_list' => __( "Locations list", 'ccat' ),
'item_published' => __( "Location published.", 'ccat' ),
'item_published_privately' => __( "Location published privately.", 'ccat' ),
'item_reverted_to_draft' => __( "Location reverted to draft.", 'ccat' ),
'item_scheduled' => __( "Location scheduled.", 'ccat' ),
'item_updated' => __( "Location updated.", 'ccat' ),
),
'public' => true,
'hierarchical' => true,
'show_ui' => true,
'show_in_nav_menus' => false,
'supports' => array( 'title', 'thumbnail', 'excerpt', 'revisions' ),
'has_archive' => false,
'rewrite' => array(
'slug' => 'lieu',
'with_front' => false,
),
'query_var' => true,
'menu_icon' => 'dashicons-location',
'show_in_rest' => true,
'rest_base' => 'location',
'rest_controller_class' => 'WP_REST_Posts_Controller',
'show_in_graphql' => true,
'graphql_single_name' => "Location",
'graphql_plural_name' => "Locations",
'graphql_interfaces' => array( 'Node' ),
)
);
}
// Custom 'location' post updated messages
add_filter( 'post_updated_messages', 'ccat_location_post_updated_messages' );
function ccat_location_post_updated_messages( $messages ) {
global $post;
$permalink = get_permalink( $post );
$preview_post_link_html = sprintf( ' <a target="_blank" href="%1$s">%2$s</a>', esc_url( get_preview_post_link( $post ) ), __( "Preview Location", 'ccat' ) );
$scheduled_post_link_html = sprintf( ' <a target="_blank" href="%1$s">%2$s</a>', esc_url( $permalink ), __( "Preview Location", 'ccat' ) );
$scheduled_date = date_i18n( __( "M j, Y @ H:i", 'ccat' ), strtotime( $post->post_date ) );
$view_post_link_html = sprintf( ' <a href="%1$s">%2$s</a>', esc_url( $permalink ), __( "View Location", 'ccat' ) );
$messages['location'] = array(
0 => '',
1 => __( "Location updated.", 'ccat' ) . $view_post_link_html,
2 => __( "Custom field updated.", 'ccat' ),
3 => __( "Custom field deleted.", 'ccat' ),
4 => __( "Location updated.", 'ccat' ),
5 => isset( $_GET['revision'] ) ? sprintf( __( "Location restored to revision from %s", 'ccat' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
6 => __( "Location published.", 'ccat' ) . $view_post_link_html,
7 => __( "Location saved.", 'ccat' ),
8 => __( "Location submitted.", 'ccat' ) . $preview_post_link_html,
9 => sprintf( __( 'Location scheduled for: %s.' ), '<strong>' . $scheduled_date . '</strong>' ) . $scheduled_post_link_html,
10 => __( 'Location draft updated.' ) . $preview_post_link_html,
);
return $messages;
}