Store Directory Wordpress Plugin - Rating, Reviews, Demo & Download
Plugin Description
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 callingWPSD_Post_Type()->post_type = 'location';
from your theme or plugin (ideally duringafter_setup_theme
at a priority higher than 10). - To change the units from miles to kilometers,
WPSD_Post_Type()->units = 'km';
Screenshots
No screenshots provided