最初のロード時にロードされる(選択されたフィルターに応じて表示または非表示になる)マーカーのセットを含む全角のフィルター処理可能なGoogle Mapを出力するWordpressショートコードを作成しようとしています。
つまり、これまでカスタム分類法を使ったことがないので、作成することをお勧めします。「緯度、経度、タイトル、および属性」という属性を持つ「マーカー」という「クラス」について考えていました。 "だが、これを達成するための進め方がよくわからない。
誰かがこの分類法を作成する方法について私を手伝ってもらい、それからプログラム的にWordpressにその項目のすべてをロードすることはできますか?前もって感謝します。
これはあなたが始めるための十分に有効な例です。
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'] );
}
}