Created
December 16, 2016 12:59
-
-
Save anonymous/ce84f3ecf0218f2ba02703efc56bde62 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php get_header(); ?> | |
<?php | |
$brand = get_field_object('field_583503060dc55'); | |
echo '<pre>'; | |
var_dump( $brand ); | |
echo '</pre>'; | |
?> | |
<main role="main"> | |
<!-- section --> | |
<section class="section"> | |
<div class="card white"> | |
<h1><?php single_cat_title(); ?></h1> | |
<div id=""> | |
<?php filter_herenschoenen(); ?> | |
<script type="text/javascript"> | |
(function ($) { | |
$('#search-herenschoenen').on('change', 'input[type="checkbox"]', function(){ | |
var $ul = $(this).closest('ul'), | |
vals = []; | |
$ul.find('input:checked').each(function(){ | |
vals.push( $(this).val() ); | |
}); | |
vals = vals.join(","); | |
window.location.replace('<?php echo home_url('category/herenschoenen'); ?>?brand=' + vals); | |
console.log( vals ); | |
}); | |
})(jQuery); | |
</script> | |
</div> | |
<div id="search-herenschoenen"> | |
<?php if (is_category( 'herenschoenen' )) : ?> | |
<a class="waves-effect waves-teal btn-flat" href="/category/herenschoenen/">Alle Merken</a> | |
<a class="waves-effect waves-teal btn-flat" href="/category/herenschoenen?brand=vanbommel">Van Bommel</a> | |
<a class="waves-effect waves-teal btn-flat" href="/category/herenschoenen?brand=merk1">Merk 1</a> | |
<a class="waves-effect waves-teal btn-flat" href="/category/herenschoenen?brand=merk2">Merk 2</a> | |
<?php else : ?> | |
test | |
<?php endif; ?> | |
</div> | |
</div> | |
<div class="row"> | |
<div class="col s12 m7 l8"> | |
<?php get_template_part('loop'); ?> | |
<?php get_template_part('pagination'); ?> | |
</div> | |
<div class="col s12 m5 l4"> | |
<?php get_sidebar(); ?> | |
</div> | |
</div> | |
</section> | |
<!-- /section --> | |
</main> | |
<?php get_footer(); ?> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/* | |
* Author: Todd Motto | @toddmotto | |
* URL: html5blank.com | @html5blank | |
* Custom functions, support, custom post types and more. | |
*/ | |
/*------------------------------------*\ | |
External Modules/Files | |
\*------------------------------------*/ | |
// Load any external files you have here | |
/*------------------------------------*\ | |
Theme Support | |
\*------------------------------------*/ | |
if (!isset($content_width)) | |
{ | |
$content_width = 900; | |
} | |
if (function_exists('add_theme_support')) | |
{ | |
// Add Menu Support | |
add_theme_support('menus'); | |
// Add Thumbnail Theme Support | |
add_theme_support('post-thumbnails'); | |
add_image_size('large', 700, '', true); // Large Thumbnail | |
add_image_size('medium', 250, '', true); // Medium Thumbnail | |
add_image_size('small', 120, '', true); // Small Thumbnail | |
add_image_size('custom-size', 700, 200, true); // Custom Thumbnail Size call using the_post_thumbnail('custom-size'); | |
// Add Support for Custom Backgrounds - Uncomment below if you're going to use | |
/*add_theme_support('custom-background', array( | |
'default-color' => 'FFF', | |
'default-image' => get_template_directory_uri() . '/img/bg.jpg' | |
));*/ | |
// Add Support for Custom Header - Uncomment below if you're going to use | |
/*add_theme_support('custom-header', array( | |
'default-image' => get_template_directory_uri() . '/img/headers/default.jpg', | |
'header-text' => false, | |
'default-text-color' => '000', | |
'width' => 1000, | |
'height' => 198, | |
'random-default' => false, | |
'wp-head-callback' => $wphead_cb, | |
'admin-head-callback' => $adminhead_cb, | |
'admin-preview-callback' => $adminpreview_cb | |
));*/ | |
// Enables post and comment RSS feed links to head | |
add_theme_support('automatic-feed-links'); | |
// Localisation Support | |
// load_theme_textdomain('html5blank', get_template_directory() . '/languages'); | |
} | |
/*------------------------------------*\ | |
Functions | |
\*------------------------------------*/ | |
// HTML5 Blank navigation | |
function html5blank_nav() | |
{ | |
wp_nav_menu( | |
array( | |
'theme_location' => 'header-menu', | |
'menu' => '', | |
'container' => 'div', | |
'container_class' => 'menu-{menu slug}-container', | |
'container_id' => '', | |
'menu_class' => 'menu', | |
'menu_id' => '', | |
'echo' => true, | |
'fallback_cb' => 'wp_page_menu', | |
'before' => '', | |
'after' => '', | |
'link_before' => '', | |
'link_after' => '', | |
'items_wrap' => '<ul id="slide-out" class="side-nav black grey-text text-lighten-5">%3$s</ul>', | |
'depth' => 0, | |
'walker' => '' | |
) | |
); | |
} | |
// Load HTML5 Blank scripts (header.php) | |
function html5blank_header_scripts() | |
{ | |
if ($GLOBALS['pagenow'] != 'wp-login.php' && !is_admin()) { | |
wp_register_script('modernizr', get_template_directory_uri() . '/js/lib/modernizr-2.7.1.min.js', array(), '2.7.1'); // Modernizr | |
wp_enqueue_script('modernizr'); // Enqueue it! | |
wp_register_script('materialize', get_template_directory_uri() . '/js/lib/materialize.min.js', array('jquery'), '0.9.87'); // Modernizr | |
wp_enqueue_script('materialize'); // Enqueue it! | |
wp_register_script('html5blankscripts', get_template_directory_uri() . '/js/scripts.js', array('jquery'), '1.0.0'); // Custom scripts | |
wp_enqueue_script('html5blankscripts'); // Enqueue it! | |
wp_register_script('googlemaps', 'https://maps.googleapis.com/maps/api/js?key=AIzaSyAmIPycZ1BiG_w_8TvnTx5AMlJyoowagfo', array('jquery'), '1.0.0'); // Custom scripts | |
wp_enqueue_script('googlemaps'); // Enqueue it! | |
} | |
} | |
// Load HTML5 Blank conditional scripts | |
function html5blank_conditional_scripts() | |
{ | |
if (is_page('pagenamehere')) { | |
wp_register_script('scriptname', get_template_directory_uri() . '/js/scriptname.js', array('jquery'), '1.0.0'); // Conditional script(s) | |
wp_enqueue_script('scriptname'); // Enqueue it! | |
} | |
} | |
// Load HTML5 Blank styles | |
function html5blank_styles() | |
{ | |
wp_register_style('html5blank', get_template_directory_uri() . '/style.css', array(), '1.0', 'all'); | |
wp_enqueue_style('html5blank'); // Enqueue it! | |
wp_register_style('materialize', get_template_directory_uri() . '/materialize.css', array(), '0.97.8', 'all'); | |
wp_enqueue_style('materialize'); // Enqueue it! | |
} | |
// Register HTML5 Blank Navigation | |
function register_html5_menu() | |
{ | |
register_nav_menus(array( // Using array to specify more menus if needed | |
'header-menu' => __('Header Menu', 'html5blank'), // Main Navigation | |
'sidebar-menu' => __('Sidebar Menu', 'html5blank'), // Sidebar Navigation | |
'herenschoenen-menu' => __('Herenschoenen Menu', 'html5blank'), // Extra Navigation if needed (duplicate as many as you need!) | |
)); | |
} | |
// Remove the <div> surrounding the dynamic navigation to cleanup markup | |
function my_wp_nav_menu_args($args = '') | |
{ | |
$args['container'] = false; | |
return $args; | |
} | |
// Remove Injected classes, ID's and Page ID's from Navigation <li> items | |
function my_css_attributes_filter($var) | |
{ | |
return is_array($var) ? array() : ''; | |
} | |
// Remove invalid rel attribute values in the categorylist | |
function remove_category_rel_from_category_list($thelist) | |
{ | |
return str_replace('rel="category tag"', 'rel="tag"', $thelist); | |
} | |
// Add page slug to body class, love this - Credit: Starkers Wordpress Theme | |
function add_slug_to_body_class($classes) | |
{ | |
global $post; | |
if (is_home()) { | |
$key = array_search('blog', $classes); | |
if ($key > -1) { | |
unset($classes[$key]); | |
} | |
} elseif (is_page()) { | |
$classes[] = sanitize_html_class($post->post_name); | |
} elseif (is_singular()) { | |
$classes[] = sanitize_html_class($post->post_name); | |
} | |
return $classes; | |
} | |
// If Dynamic Sidebar Exists | |
if (function_exists('register_sidebar')) | |
{ | |
// Define Sidebar Widget Area 1 | |
register_sidebar(array( | |
'name' => __('Widget Area 1', 'html5blank'), | |
'description' => __('Description for this widget-area...', 'html5blank'), | |
'id' => 'widget-area-1', | |
'before_widget' => '<div id="%1$s" class="%2$s">', | |
'after_widget' => '</div>', | |
'before_title' => '<h3>', | |
'after_title' => '</h3>' | |
)); | |
// Define Sidebar Widget Area 2 | |
register_sidebar(array( | |
'name' => __('Widget Area 2', 'html5blank'), | |
'description' => __('Description for this widget-area...', 'html5blank'), | |
'id' => 'widget-area-2', | |
'before_widget' => '<div id="%1$s" class="%2$s">', | |
'after_widget' => '</div>', | |
'before_title' => '<h3>', | |
'after_title' => '</h3>' | |
)); | |
} | |
// Remove wp_head() injected Recent Comment styles | |
function my_remove_recent_comments_style() | |
{ | |
global $wp_widget_factory; | |
add_filter( 'show_recent_comments_widget_style', '__return_false' ); | |
} | |
// Pagination for paged posts, Page 1, Page 2, Page 3, with Next and Previous Links, No plugin | |
function html5wp_pagination() | |
{ | |
global $wp_query; | |
$big = 999999999; | |
echo paginate_links(array( | |
'base' => str_replace($big, '%#%', get_pagenum_link($big)), | |
'format' => '?paged=%#%', | |
'current' => max(1, get_query_var('paged')), | |
'total' => $wp_query->max_num_pages | |
)); | |
} | |
// Related posts | |
function ci_get_related_posts( $post_id, $args = array() ) { | |
$args = wp_parse_args( (array) $args, array( | |
'orderby' => 'rand', | |
'return' => 'query', // Valid values are: 'query' (WP_Query object), 'array' (the arguments array) | |
) ); | |
$related_args = array( | |
'post_type' => get_post_type( $post_id ), | |
'posts_per_page' => 2, | |
'post_status' => 'publish', | |
'post__not_in' => array( $post_id ), | |
'orderby' => $args['orderby'], | |
'tax_query' => array() | |
); | |
$post = get_post( $post_id ); | |
$taxonomies = get_object_taxonomies( $post, 'names' ); | |
foreach( $taxonomies as $taxonomy ) { | |
$terms = get_the_terms( $post_id, $taxonomy ); | |
if ( empty( $terms ) ) continue; | |
$term_list = wp_list_pluck( $terms, 'slug' ); | |
$related_args['tax_query'][] = array( | |
'taxonomy' => $taxonomy, | |
'field' => 'slug', | |
'terms' => $term_list | |
); | |
} | |
if( count( $related_args['tax_query'] ) > 1 ) { | |
$related_args['tax_query']['relation'] = 'OR'; | |
} | |
if( $args['return'] == 'query' ) { | |
return new WP_Query( $related_args ); | |
} else { | |
return $related_args; | |
} | |
} | |
// Custom Excerpts | |
function html5wp_index($length) // Create 20 Word Callback for Index page Excerpts, call using html5wp_excerpt('html5wp_index'); | |
{ | |
return 20; | |
} | |
// Create 40 Word Callback for Custom Post Excerpts, call using html5wp_excerpt('html5wp_custom_post'); | |
function html5wp_custom_post($length) | |
{ | |
return 40; | |
} | |
// Create the Custom Excerpts callback | |
function html5wp_excerpt($length_callback = '', $more_callback = '') | |
{ | |
global $post; | |
if (function_exists($length_callback)) { | |
add_filter('excerpt_length', $length_callback); | |
} | |
if (function_exists($more_callback)) { | |
add_filter('excerpt_more', $more_callback); | |
} | |
$output = get_the_excerpt(); | |
$output = apply_filters('wptexturize', $output); | |
$output = apply_filters('convert_chars', $output); | |
$output = '<p>' . $output . '</p>'; | |
echo $output; | |
} | |
// Custom View Article link to Post | |
function html5_blank_view_article($more) | |
{ | |
global $post; | |
return '... <a class="view-article" href="' . get_permalink($post->ID) . '">' . __('View Article', 'html5blank') . '</a>'; | |
} | |
// Remove Admin bar | |
function remove_admin_bar() | |
{ | |
return false; | |
} | |
// Remove 'text/css' from our enqueued stylesheet | |
function html5_style_remove($tag) | |
{ | |
return preg_replace('~\s+type=["\'][^"\']++["\']~', '', $tag); | |
} | |
// Remove thumbnail width and height dimensions that prevent fluid images in the_thumbnail | |
function remove_thumbnail_dimensions( $html ) | |
{ | |
$html = preg_replace('/(width|height)=\"\d*\"\s/', "", $html); | |
return $html; | |
} | |
// Custom Gravatar in Settings > Discussion | |
function html5blankgravatar ($avatar_defaults) | |
{ | |
$myavatar = get_template_directory_uri() . '/img/gravatar.jpg'; | |
$avatar_defaults[$myavatar] = "Custom Gravatar"; | |
return $avatar_defaults; | |
} | |
// Threaded Comments | |
function enable_threaded_comments() | |
{ | |
if (!is_admin()) { | |
if (is_singular() AND comments_open() AND (get_option('thread_comments') == 1)) { | |
wp_enqueue_script('comment-reply'); | |
} | |
} | |
} | |
// Custom Comments Callback | |
function html5blankcomments($comment, $args, $depth) | |
{ | |
$GLOBALS['comment'] = $comment; | |
extract($args, EXTR_SKIP); | |
if ( 'div' == $args['style'] ) { | |
$tag = 'div'; | |
$add_below = 'comment'; | |
} else { | |
$tag = 'li'; | |
$add_below = 'div-comment'; | |
} | |
?> | |
<!-- heads up: starting < for the html tag (li or div) in the next line: --> | |
<<?php echo $tag ?> <?php comment_class(empty( $args['has_children'] ) ? '' : 'parent') ?> id="comment-<?php comment_ID() ?>"> | |
<?php if ( 'div' != $args['style'] ) : ?> | |
<div id="div-comment-<?php comment_ID() ?>" class="comment-body"> | |
<?php endif; ?> | |
<div class="comment-author vcard"> | |
<?php if ($args['avatar_size'] != 0) echo get_avatar( $comment, $args['180'] ); ?> | |
<?php printf(__('<cite class="fn">%s</cite> <span class="says">says:</span>'), get_comment_author_link()) ?> | |
</div> | |
<?php if ($comment->comment_approved == '0') : ?> | |
<em class="comment-awaiting-moderation"><?php _e('Your comment is awaiting moderation.') ?></em> | |
<br /> | |
<?php endif; ?> | |
<div class="comment-meta commentmetadata"><a href="<?php echo htmlspecialchars( get_comment_link( $comment->comment_ID ) ) ?>"> | |
<?php | |
printf( __('%1$s at %2$s'), get_comment_date(), get_comment_time()) ?></a><?php edit_comment_link(__('(Edit)'),' ','' ); | |
?> | |
</div> | |
<?php comment_text() ?> | |
<div class="reply"> | |
<?php comment_reply_link(array_merge( $args, array('add_below' => $add_below, 'depth' => $depth, 'max_depth' => $args['max_depth']))) ?> | |
</div> | |
<?php if ( 'div' != $args['style'] ) : ?> | |
</div> | |
<?php endif; ?> | |
<?php } | |
/*------------------------------------*\ | |
Actions + Filters + ShortCodes | |
\*------------------------------------*/ | |
// Add Actions | |
add_action('init', 'html5blank_header_scripts'); // Add Custom Scripts to wp_head | |
add_action('wp_print_scripts', 'html5blank_conditional_scripts'); // Add Conditional Page Scripts | |
add_action('get_header', 'enable_threaded_comments'); // Enable Threaded Comments | |
add_action('wp_enqueue_scripts', 'html5blank_styles'); // Add Theme Stylesheet | |
add_action('init', 'register_html5_menu'); // Add HTML5 Blank Menu | |
add_action('init', 'create_post_type_html5'); // Add our HTML5 Blank Custom Post Type | |
add_action('widgets_init', 'my_remove_recent_comments_style'); // Remove inline Recent Comment Styles from wp_head() | |
add_action('init', 'html5wp_pagination'); // Add our HTML5 Pagination | |
// Remove Actions | |
remove_action('wp_head', 'feed_links_extra', 3); // Display the links to the extra feeds such as category feeds | |
remove_action('wp_head', 'feed_links', 2); // Display the links to the general feeds: Post and Comment Feed | |
remove_action('wp_head', 'rsd_link'); // Display the link to the Really Simple Discovery service endpoint, EditURI link | |
remove_action('wp_head', 'wlwmanifest_link'); // Display the link to the Windows Live Writer manifest file. | |
remove_action('wp_head', 'index_rel_link'); // Index link | |
remove_action('wp_head', 'parent_post_rel_link', 10, 0); // Prev link | |
remove_action('wp_head', 'start_post_rel_link', 10, 0); // Start link | |
remove_action('wp_head', 'adjacent_posts_rel_link', 10, 0); // Display relational links for the posts adjacent to the current post. | |
remove_action('wp_head', 'wp_generator'); // Display the XHTML generator that is generated on the wp_head hook, WP version | |
remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0); | |
remove_action('wp_head', 'rel_canonical'); | |
remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0); | |
// Add Filters | |
add_filter('avatar_defaults', 'html5blankgravatar'); // Custom Gravatar in Settings > Discussion | |
add_filter('body_class', 'add_slug_to_body_class'); // Add slug to body class (Starkers build) | |
add_filter('widget_text', 'do_shortcode'); // Allow shortcodes in Dynamic Sidebar | |
add_filter('widget_text', 'shortcode_unautop'); // Remove <p> tags in Dynamic Sidebars (better!) | |
add_filter('wp_nav_menu_args', 'my_wp_nav_menu_args'); // Remove surrounding <div> from WP Navigation | |
// add_filter('nav_menu_css_class', 'my_css_attributes_filter', 100, 1); // Remove Navigation <li> injected classes (Commented out by default) | |
// add_filter('nav_menu_item_id', 'my_css_attributes_filter', 100, 1); // Remove Navigation <li> injected ID (Commented out by default) | |
// add_filter('page_css_class', 'my_css_attributes_filter', 100, 1); // Remove Navigation <li> Page ID's (Commented out by default) | |
add_filter('the_category', 'remove_category_rel_from_category_list'); // Remove invalid rel attribute | |
add_filter('the_excerpt', 'shortcode_unautop'); // Remove auto <p> tags in Excerpt (Manual Excerpts only) | |
add_filter('the_excerpt', 'do_shortcode'); // Allows Shortcodes to be executed in Excerpt (Manual Excerpts only) | |
add_filter('excerpt_more', 'html5_blank_view_article'); // Add 'View Article' button instead of [...] for Excerpts | |
add_filter('show_admin_bar', 'remove_admin_bar'); // Remove Admin bar | |
add_filter('style_loader_tag', 'html5_style_remove'); // Remove 'text/css' from enqueued stylesheet | |
add_filter('post_thumbnail_html', 'remove_thumbnail_dimensions', 10); // Remove width and height dynamic attributes to thumbnails | |
add_filter('image_send_to_editor', 'remove_thumbnail_dimensions', 10); // Remove width and height dynamic attributes to post images | |
// Remove Filters | |
remove_filter('the_excerpt', 'wpautop'); // Remove <p> tags from Excerpt altogether | |
// Shortcodes | |
add_shortcode('html5_shortcode_demo', 'html5_shortcode_demo'); // You can place [html5_shortcode_demo] in Pages, Posts now. | |
add_shortcode('html5_shortcode_demo_2', 'html5_shortcode_demo_2'); // Place [html5_shortcode_demo_2] in Pages, Posts now. | |
// Shortcodes above would be nested like this - | |
// [html5_shortcode_demo] [html5_shortcode_demo_2] Here's the page title! [/html5_shortcode_demo_2] [/html5_shortcode_demo] | |
/*------------------------------------*\ | |
Custom Post Types | |
\*------------------------------------*/ | |
// Create 1 Custom Post type for a Demo, called HTML5-Blank | |
function create_post_type_html5() | |
{ | |
register_taxonomy_for_object_type('category', 'html5-blank'); // Register Taxonomies for Category | |
register_taxonomy_for_object_type('post_tag', 'html5-blank'); | |
register_post_type('html5-blank', // Register Custom Post Type | |
array( | |
'labels' => array( | |
'name' => __('HTML5 Blank Custom Post', 'html5blank'), // Rename these to suit | |
'singular_name' => __('HTML5 Blank Custom Post', 'html5blank'), | |
'add_new' => __('Add New', 'html5blank'), | |
'add_new_item' => __('Add New HTML5 Blank Custom Post', 'html5blank'), | |
'edit' => __('Edit', 'html5blank'), | |
'edit_item' => __('Edit HTML5 Blank Custom Post', 'html5blank'), | |
'new_item' => __('New HTML5 Blank Custom Post', 'html5blank'), | |
'view' => __('View HTML5 Blank Custom Post', 'html5blank'), | |
'view_item' => __('View HTML5 Blank Custom Post', 'html5blank'), | |
'search_items' => __('Search HTML5 Blank Custom Post', 'html5blank'), | |
'not_found' => __('No HTML5 Blank Custom Posts found', 'html5blank'), | |
'not_found_in_trash' => __('No HTML5 Blank Custom Posts found in Trash', 'html5blank') | |
), | |
'public' => true, | |
'hierarchical' => true, // Allows your posts to behave like Hierarchy Pages | |
'has_archive' => true, | |
'supports' => array( | |
'title', | |
'editor', | |
'excerpt', | |
'thumbnail' | |
), // Go to Dashboard Custom HTML5 Blank post for supports | |
'can_export' => true, // Allows export in Tools > Export | |
'taxonomies' => array( | |
'post_tag', | |
'category' | |
) // Add Category and Post Tags support | |
)); | |
} | |
/*------------------------------------*\ | |
ShortCode Functions | |
\*------------------------------------*/ | |
// Shortcode Demo with Nested Capability | |
function html5_shortcode_demo($atts, $content = null) | |
{ | |
return '<div class="shortcode-demo">' . do_shortcode($content) . '</div>'; // do_shortcode allows for nested Shortcodes | |
} | |
// Shortcode Demo with simple <h2> tag | |
function html5_shortcode_demo_2($atts, $content = null) // Demo Heading H2 shortcode, allows for nesting within above element. Fully expandable. | |
{ | |
return '<h2>' . $content . '</h2>'; | |
} | |
/*------------------------------------*\ | |
ACF Google Maps | |
\*------------------------------------*/ | |
function my_acf_init() { | |
acf_update_setting('google_api_key', 'AIzaSyAmIPycZ1BiG_w_8TvnTx5AMlJyoowagfo'); | |
} | |
add_action('acf/init', 'my_acf_init'); | |
/*------------------------------------*\ | |
ACF Custom field Search | |
\*------------------------------------*/ | |
function cf_search_join( $join ) { | |
global $wpdb; | |
if ( is_search() ) { | |
$join .=' LEFT JOIN '.$wpdb->postmeta. ' ON '. $wpdb->posts . '.ID = ' . $wpdb->postmeta . '.post_id '; | |
} | |
return $join; | |
} | |
add_filter('posts_join', 'cf_search_join' ); | |
function cf_search_where( $where ) { | |
global $pagenow, $wpdb; | |
if ( is_search() ) { | |
$where = preg_replace( | |
"/\(\s*".$wpdb->posts.".post_title\s+LIKE\s*(\'[^\']+\')\s*\)/", | |
"(".$wpdb->posts.".post_title LIKE $1) OR (".$wpdb->postmeta.".meta_value LIKE $1)", $where ); | |
} | |
return $where; | |
} | |
add_filter( 'posts_where', 'cf_search_where' ); | |
function cf_search_distinct( $where ) { | |
global $wpdb; | |
if ( is_search() ) { | |
return "DISTINCT"; | |
} | |
return $where; | |
} | |
add_filter( 'posts_distinct', 'cf_search_distinct' ); | |
/*------------------------------------*\ | |
ACF Custom field filter | |
\*------------------------------------*/ | |
// array of filters (field key => field name) | |
$GLOBALS['my_query_filters'] = array( | |
'field_583503060dc55' => 'brand', | |
); | |
// action | |
function my_pre_get_posts( $query ) { | |
// bail early if is in admin | |
if( is_admin() ) { | |
return; | |
} | |
// get meta query | |
$meta_query = $query->get('meta_query'); | |
// loop over filters | |
foreach( $GLOBALS['my_query_filters'] as $key => $name ) { | |
// continue if not found in url | |
if( empty($_GET[ $name ]) ) { | |
continue; | |
} | |
// get the value for this filter | |
// eg: http://www.website.com/events?city=melbourne,sydney | |
$value = explode(',', $_GET[ $name ]); | |
// append meta query | |
$meta_query[] = array( | |
'key' => $name, | |
'value' => $value, | |
'compare' => 'IN', | |
); | |
} | |
// update meta query | |
$query->set('meta_query', $meta_query); | |
} | |
add_action('pre_get_posts', 'my_pre_get_posts', 10, 1); | |
function filter_herenschoenen() { | |
foreach( $GLOBALS['my_query_filters'] as $key => $name ): | |
// get the field's settings without attempting to load a value | |
$field = get_field_object($key, false, false); | |
// set value if available | |
if( isset($_GET[ $name ]) ) { | |
$field['value'] = explode(',', $_GET[ $name ]); | |
} | |
// create filter | |
?> | |
<div class="filter" data-filter="<?php echo $name; ?>"> | |
<?php create_field( $field ); ?> | |
</div> | |
<?php endforeach; | |
} | |
?> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$(document).ready(function() { | |
$("#acf-field_583503060dc55").material_select() | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment