J'essaie de créer un shortcode Wordpress qui générera une carte Google filtrable sur toute la largeur avec un ensemble de marqueurs qui seront chargés lors du premier chargement (et affichés ou masqués en fonction des filtres choisis).
Le fait est que je n’avais jamais utilisé/utilisé de taxonomie auparavant, et j’ai pensé que ce serait une bonne idée d’en créer une. description ", mais je ne sais pas trop comment procéder pour y parvenir.
Quelqu'un peut-il m'aider, s'il vous plaît, à créer cette taxonomie, puis à charger tous les éléments dans Wordpress par programmation? Merci d'avance.
Voici un exemple pleinement fonctionnel pour vous aider à démarrer.
register_taxonomy( 'marker',
'post',
array(
'hierarchical' => false,
'update_count_callback' => '_update_post_term_count',
'label' => __( 'Markers', 'textdomain' ),
'labels' => array(
'name' => __( 'Markers', 'textdomain' ),
'singular_name' => __( 'Marker', 'textdomain' ),
'menu_name' => _x( 'Markers', 'Admin menu name', 'textdomain' ),
'search_items' => __( 'Search Markers', 'textdomain' ),
'all_items' => __( 'All Markers', 'textdomain' ),
'parent_item' => __( 'Parent Marker', 'textdomain' ),
'parent_item_colon' => __( 'Parent Marker:', 'textdomain' ),
'edit_item' => __( 'Edit Marker', 'textdomain' ),
'update_item' => __( 'Update Marker', 'textdomain' ),
'add_new_item' => __( 'Add New Marker', 'textdomain' ),
'new_item_name' => __( 'New Marker Name', 'textdomain' )
),
'rewrite' => false,
)
);
add_action( 'marker_add_form_fields', 'marker_add_fields', 10, 2 );
add_action( 'marker_edit_form_fields', 'marker_edit_fields', 10, 2 );
add_action( 'created_marker', 'save_marker_meta', 10, 2 );
add_action( 'edited_marker', 'save_marker_meta', 10, 2);
function marker_add_fields() {
?>
<div class="form-field">
<label for="latitude"><?php _e( 'Latitude' ); ?></label>
<input type="text" name="latitude" id="latitude" value="">
</div>
<div class="form-field">
<label for="longitude"><?php _e( 'Longitude' ); ?></label>
<input type="text" name="longitude" id="longitude" value="">
</div>
<?php
}
function marker_edit_fields( $term, $taxonomy ) {
$latitude = get_term_meta( $term->term_id, 'latitude', true );
$longitude = get_term_meta( $term->term_id, 'longitude', true );
?>
<tr class="form-field">
<th scope="row" valign="top"><label for="latitude"><?php _e( 'Latitude' ); ?></label></th>
<td>
<input type="text" name="latitude" id="latitude" value="<?php echo $latitude; ?>">
</td>
</tr>
<tr class="form-field">
<th scope="row" valign="top"><label for="longitude"><?php _e( 'Longitude' ); ?></label></th>
<td>
<input type="text" name="longitude" id="longitude" value="<?php echo $longitude; ?>">
</td>
</tr>
<?php
}
function save_marker_meta( $term_id, $tt_id ){
if( isset( $_POST['latitude'] ) && '' !== $_POST['latitude'] ){
update_term_meta( $term_id, 'latitude', $_POST['latitude'] );
}
if( isset( $_POST['longitude'] ) && '' !== $_POST['longitude'] ){
update_term_meta( $term_id, 'longitude', $_POST['longitude'] );
}
}