array(
'name' => "Modèles",
'menu_name' => "Modèles",
'singular_name' => "Modèle",
'add_new' => "Ajouter",
'add_new_item' => "Ajouter un modèle",
'new_item' => "Nouveau modèle",
'edit_item' => "Modifier le modèle",
'view_item' => "Voir le modèle",
'view_items' => "Voir les modèles",
'search_items' => "Rechercher des modèles",
'not_found' => "Aucun modèle trouvé",
'not_found_in_trash' => "Aucun modèle trouvé dans la corbeille",
'parent_item_colon' => "Modèle parent :",
'all_items' => "Tous les modèles",
'archives' => "Archives des modèles",
'attributes' => "Attributs du modèle",
'insert_into_item' => "Insérer dans le modèle",
'uploaded_to_this_item' => "Téléversé dans ce modèle",
'featured_image' => "Vignette",
'set_featured_image' => "Définir la vignette",
'remove_featured_image' => "Supprimer la vignette",
'use_featured_image' => "Utiliser comme vignette",
'filter_items_list' => "Filtrer la liste des modèles",
'items_list_navigation' => "Navigation dans la liste des modèles",
'items_list' => "Liste des modèles",
'item_published' => "Modèle publié.",
'item_published_privately' => "Modèle publié en privé.",
'item_reverted_to_draft' => "Modèle remis au brouillon.",
'item_scheduled' => "Modèle planifié.",
'item_updated' => "Modèle mis à jour.",
),
'public' => false,
'hierarchical' => false,
'show_ui' => true,
'show_in_nav_menus' => false,
'supports' => array( 'title', 'revisions' ),
'has_archive' => false,
'rewrite' => false,
'query_var' => true,
'menu_icon' => 'dashicons-clipboard',
'show_in_rest' => false,
'rest_base' => 'template',
'rest_controller_class' => 'WP_REST_Posts_Controller',
'show_in_graphql' => true,
'graphql_single_name' => "Template",
'graphql_plural_name' => "Templates",
'graphql_interfaces' => array( 'Node' ),
)
);
}
// Custom 'template' post updated messages
add_filter( 'post_updated_messages', 'headless_template_post_updated_messages' );
function headless_template_post_updated_messages( $messages ) {
global $post;
$permalink = get_permalink( $post );
$preview_post_link_html = sprintf( ' %2$s', esc_url( get_preview_post_link( $post ) ), "Prévisualiser le modèle" );
$scheduled_post_link_html = sprintf( ' %2$s', esc_url( $permalink ), "Prévisualiser le modèle" );
$scheduled_date = date_i18n( "j M Y à H:i", strtotime( $post->post_date ) );
$view_post_link_html = sprintf( ' %2$s', esc_url( $permalink ), "Voir le modèle" );
$messages['template'] = array(
0 => '',
1 => "Modèle mis à jour." . $view_post_link_html,
2 => "Champ personnalisé mis à jour.",
3 => "Champ personnalisé supprimé.",
4 => "Modèle mis à jour.",
5 => isset( $_GET['revision'] ) ? sprintf( "Modèle restauré à partir de la révision du %s", wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
6 => "Modèle publié." . $view_post_link_html,
7 => "Modèle enregistré.",
8 => "Modèle soumis." . $preview_post_link_html,
9 => sprintf( "Modèle planifié pour le : %s.", '' . $scheduled_date . '' ) . $scheduled_post_link_html,
10 => "Brouillon du modèle mis à jour." . $preview_post_link_html,
);
return $messages;
}
// Helper: Replace template(s) in sections value recursively
function headless_template_replace_sections( $sections ) {
if ( ! is_array( $sections ) ) {
return $sections;
}
$processed_sections = array();
foreach ( $sections as $section ) {
if ( empty( $layout = $section['acf_fc_layout'] ?? false ) ) {
continue;
}
if ( $layout !== 'template' ) {
$processed_sections[] = $section;
continue;
}
if ( empty( $template_id = $section['template'] ?? false ) ) {
continue;
}
$template_sections = get_field( 'builder_sections', $template_id );
if ( is_array( $template_sections ) ) {
$expanded_sections = headless_template_replace_sections( $template_sections );
foreach ( $expanded_sections as $expanded_section ) {
$processed_sections[] = $expanded_section;
}
}
}
return $processed_sections;
}
// Replace template(s) in GraphQL builder sections value
add_filter( 'wpgraphql/acf/field_value', 'headless_graphql_process_sections', 10, 2 );
function headless_graphql_process_sections( $value, $field_config ) {
if ( 'builder' !== $field_config['name'] ?? false || ! is_array( $value['sections'] ?? false ) ) {
return $value;
}
$value['sections'] = headless_template_replace_sections( $value['sections'] );
return $value;
}