內容簡介
這個外掛會在你的 WordPress 網站上添加商店/地點目錄。一旦加入商店,你可以在部件區域添加「商店搜尋」部件,或者手動在主題中添加表單。
這個外掛被特意保持輕量和簡單。它非常靈活,旨在成為你可以構建的東西。
過濾器
wpsd_radius_options
參數:array( 5, 10, 25, 50, 100 )
這個過濾器允許你修改商店搜尋表單中半徑下拉列表中的選項。默認按英里計算距離。
wpsd_register_post_type
參數:true
這個過濾器允許你完全禁用「store」文章類型。要這樣做,只需在主題或外掛中添加 add_filter( 'wpsd_register_post_type', '__return_false' )。
wpsd_post_type_args
這個過濾器讓你有能力修改傳遞給「store」文章類型的 register_post_type() 參數。在 Codex 中查看 register_post_type 的有效參數和值。
參數:
array(
'public' => true,
'has_archive' => true,
'supports' => array( 'title' ),
'labels' => array(
'name' => __( 'Stores', 'store-directory' ),
'singular_name' => __( 'Store', 'store-directory' ),
'all_items' => __( 'Stores', 'store-directory' ),
'new_item' => __( 'New store', 'store-directory' ),
'add_new' => __( 'Add New', 'store-directory' ),
'add_new_item' => __( 'Add New store', 'store-directory' ),
'edit_item' => __( 'Edit store', 'store-directory' ),
'view_item' => __( 'View store', 'store-directory' ),
'search_items' => __( 'Search stores', 'store-directory' ),
'not_found' => __( 'No stores found', 'store-directory' ),
'not_found_in_trash' => __( 'No stores found in trash', 'store-directory' ),
'parent_item_colon' => __( 'Parent store', 'store-directory' ),
'menu_name' => __( 'Stores', 'store-directory' ),
)
)
wpsd_automap
參數:true
默認情況下,使用 'loop_start' 操作在商店存檔視圖和商店單一視圖中添加 Google 地圖。如果你多次循環遍歷文章,這可能不是所有情況下都理想的。要禁用它,只需在主題或外掛中添加 add_filter( 'wpsd_automap', '__return_false' )。如果你選擇禁用它,請參閱 wpsd_the_map() 模板標籤以手動顯示地圖。
wpsd_mappable_data
參數:
array(
'name' => $post->post_title,
'address' => get_post_meta( $post->ID, 'address', true ),
'latitude' => $post->latitude,
'longitude' => $post->longitude,
'distance' => $post->distance
)
參數:$post
這個過濾器允許你自定義地圖中使用的數據。還有一個與此過濾器配合使用的 JavaScript「掛勾」,wpsd_custom_create_marker。要使用透過 wpsd_mappable_data 過濾器傳遞的數據,你需要定義一個 JavaScript 函數:wpsd_custom_create_marker( latlng, data )。這個函數應該帶有兩個參數,其中第一個是一個 google.maps.LatLng 對象,第二個是帶有過濾後數據的對象。
外掛標籤
開發者團隊
原文外掛簡介
This plugin adds a store/location directory to your WordPress site. Once you add stores, you can add the Store Search widget to your widget area or you can add the form to your theme manually.
This plugin is intentionally light and simple. It’s very flexible and is intended to be something on which you can build.
Filters
wpsd_radius_options
Param: array( 5, 10, 25, 50, 100 )
This filter allows you to modify the options in the radius dropdown in the store search form. Values are in miles by default.
wpsd_register_post_type
Param: true
This filter allows you to disable the store post type altogether. To do so, simply add add_filter( 'wpsd_register_post_type', '__return_false' ) to your theme or plugin.
wpsd_post_type_args
This filter gives you the ability to modify the arguments passed to register_post_type() for the ‘store’ post type. See register_post_type in the Codex for valid arguments and values.
Param:
array(
'public' => true,
'has_archive' => true,
'supports' => array( 'title' ),
'labels' => array(
'name' => __( 'Stores', 'store-directory' ),
'singular_name' => __( 'Store', 'store-directory' ),
'all_items' => __( 'Stores', 'store-directory' ),
'new_item' => __( 'New store', 'store-directory' ),
'add_new' => __( 'Add New', 'store-directory' ),
'add_new_item' => __( 'Add New store', 'store-directory' ),
'edit_item' => __( 'Edit store', 'store-directory' ),
'view_item' => __( 'View store', 'store-directory' ),
'search_items' => __( 'Search stores', 'store-directory' ),
'not_found' => __( 'No stores found', 'store-directory' ),
'not_found_in_trash' => __( 'No stores found in trash', 'store-directory' ),
'parent_item_colon' => __( 'Parent store', 'store-directory' ),
'menu_name' => __( 'Stores', 'store-directory' ),
)
)
wpsd_automap
Param: true
By default, a Google Map is added to the store archive views and store singular views using the 'loop_start' action. This may not be desirable in all circumstances, especially if you loop through your posts multiple times. To disable this, add add_filter( 'wpsd_automap', '__return_false' ) to your theme or plugin. If you choose to disable this, see the wpsd_the_map() tempalte tag to manually display the map.
wpsd_mappable_data
Param:
array(
'name' => $post->post_title,
'address' => get_post_meta( $post->ID, 'address', true ),
'latitude' => $post->latitude,
'longitude' => $post->longitude,
'distance' => $post->distance
)
Param: $post
This filter allows you to customize the data used in the map. There is also a javascript “hook” that works in tandem with this, wpsd_custom_create_marker. To use the data you pass through the wpsd_mappable_data filter, you need to define a javascript function, wpsd_custom_create_marker( latlng, data ). This function should take two params, where the first is a google.maps.LatLng object and the second is an object with your filtered data. Armed with this data, you can create the marker however you need! See js/maps.js:wpsd_create_marker() for an example of how to create a marker.
Template Tags
wpsd_the_store_search_form()
Output the store search form. If you choose not to use the provided widget, this lets you add the form wherever you’d like.
wpsd_the_map()
Param: $posts array An array of posts to map. Each entry in the array should contain the following keys:
'name' => The marker title.
'address' => The marker address.
'latitude' => The latitude of the point.
'longitude' => The longitude of the point.
'distance' => The distance of the point from the center (optional, not presently used).
See WPSD_Search::get_mappable_data() for an example.
Param: $lat float The latitude of the center point for the map.
Param: $long float The longitude of the center point for the map.
Output a Google Map with the given points (posts) centered around the given latitude and longitude.
Other Notes for Developers
Beyond the above, pretty much everything in this plugin is modifiable by editing the properties of the singleton classes. Here are some examples:
To change the post type, e.g. to be 'location' instead of store, you can set it by calling WPSD_Post_Type()->post_type = 'location'; from your theme or plugin (ideally during after_setup_theme at a priority higher than 10).
To change the units from miles to kilometers, WPSD_Post_Type()->units = 'km';
