The forums are closed and will be removed when we launch our new site.
Looking for support? You can access the support system via your account.
-
AuthorSearch Results
-
September 29, 2020 at 2:22 pm #261096
In reply to: Search form stopped working. Possibly cache issue?
Moe FiniganParticipantThis reply has been marked as private.September 29, 2020 at 1:26 pm #261297In reply to: Search form stopped working. Possibly cache issue?
Moe FiniganParticipantThis reply has been marked as private.September 21, 2020 at 6:37 pm #260220In reply to: ACF, Post Meta, Relevanssi conflict
Jonathan WhitneyParticipantI was able to fix my issue. Here is my code snippet in case anyone runs into the same issue…
function set_user_di( $query_args, $sfid ) { //if search form ID = 225, the do something with this query $nam_options = get_option( 'nam_options' ); $inventory_form_id = (int)$nam_options['my_inventory_form_id_number']; if ( is_user_logged_in() && $sfid==$inventory_form_id ) { if ($query_args['meta_query']) { array_push($query_args['meta_query'], array( 'key' => 'owner', 'value' => get_current_user_id(), 'compare' => '=', )); } else { $meta_query = array( array( 'key' => 'owner', 'value' => get_current_user_id(), 'compare' => '=', ), ); $query_args = $meta_query; } } return $query_args; } add_filter( 'sf_edit_query_args', 'set_user_di', 20, 2 );
September 14, 2020 at 4:54 pm #259361In reply to: Filter custom query with meta_query
TrevorModeratorOrdering is (normally) handled within our plugin, so any query arguments you set for ordering may be ignored/overridden. Instead, you would need to add them using this filter:
https://searchandfilter.com/documentation/action-filter-reference/#edit-query-arguments
I am not sure if that would work, but this forum search should yield some code snippets:
https://support.searchandfilter.com/forums/search/orderby+function+sf_edit_query_args/
August 24, 2020 at 11:36 pm #257178In reply to: Multiple POST META Conditions
ThomasParticipantThis reply has been marked as private.August 24, 2020 at 9:25 am #257057In reply to: Multiple POST META Conditions
ThomasParticipant<?php
if ( ! defined( ‘ABSPATH’ ) ) { exit; }if ( ! isset( $content_width ) ) $content_width = 1280;
function skelementor_init() {
add_theme_support( ‘title-tag’ );
add_theme_support( ‘post-thumbnails’ );
add_theme_support( ‘automatic-feed-links’ );
add_theme_support( ‘title-tag’ );
add_theme_support( ‘html5’, array( ‘search-form’, ‘comment-form’, ‘comment-list’, ‘gallery’, ‘caption’ ) );
add_theme_support( ‘custom-logo’, array(
‘width’ => 260,
‘height’ => 100,
‘flex-height’ => true,
‘flex-width’ => true,
) );
add_theme_support( ‘custom-header’ );
add_theme_support( ‘woocommerce’ );
add_post_type_support( ‘page’, ‘excerpt’ );register_nav_menus(
array( ‘main-menu’ => __( ‘Main Menu’, ‘skelementor’ ) )
);load_theme_textdomain( ‘skelementor’, get_template_directory() . ‘/languages’ );
}
add_action( ‘after_setup_theme’, ‘skelementor_init’ );function skelementor_comment_reply() {
if ( get_option( ‘thread_comments’ ) ) { wp_enqueue_script( ‘comment-reply’ ); }
}
add_action( ‘comment_form_before’, ‘skelementor_comment_reply’ );function skelementor_scripts_styles() {
wp_enqueue_style( ‘skelementor-style’, get_stylesheet_uri() );
}
add_action( ‘wp_enqueue_scripts’, ‘skelementor_scripts_styles’ );function skelementor_register_elementor_locations( $elementor_theme_manager ) {
$elementor_theme_manager->register_all_core_location();
};
add_action( ‘elementor/theme/register_locations’, ‘skelementor_register_elementor_locations’ );function price_range_on_save( $post_id ) {
$post_type = ‘share’; //custom post type for events//Check if we are saving correct post type
if( get_post_type( $post_id ) != $post_type)
return;//Check it’s not an auto save routine
if( defined(‘DOING_AUTOSAVE’) && DOING_AUTOSAVE )
return;// get the price of the post. This assumes that the price is a number and has no currency symbol or thousands separator
$post_price = get_post_field (‘price’, $post_id);
// set an empty default string
$post_price_text = “”;
// set the price text label to match the price
if ($post_price) {
switch($post_price) {
case ( $post_price <= 100 ):
$post_price_text = “0-100 kr”;
break;
case ( ($post_price > 100) && ($post_price <= 250) ):
$post_price_text = “101-250 kr”;
break;
default:
$post_price_text = “250 kr and up”;
}
}// update the price choice
update_field( ‘post_price_text’, $post_price_text );
}
add_action(‘save_post’, ‘price_range_on_save’);/////////
$roots_includes = array(
‘lib/extras.php’,
‘lib/scripts.php’,
‘lib/ajax.php’,
‘lib/post-types.php’,
‘lib/init.php’,
‘lib/utilities.php’,
‘lib/acf.php’,
// ‘lib/custom-fields.php’,
// ‘lib/custom-fields/category.php’,
// ‘lib/custom-fields/footer.php’,
// ‘lib/custom-fields/post.php’,
);foreach ($roots_includes as $file) {
if (!$filepath = locate_template($file)) {
trigger_error(sprintf(__(‘Error locating %s for inclusion’, ‘roots’), $file), E_USER_ERROR);
}require_once $filepath;
}
unset($file, $filepath);// CUSTOM FILTER // Add author of the current post (SPELTIPS)
add_action( ‘elementor/query/from_same-author’, function( $query ) {
// The author of the current post
$author_id = get_the_author_meta(‘ID’);
$query->set( ‘author’, $author_id );
} );// CUSTOM FILTER // Add Speltips from same expert on EXPERT page
add_action( ‘elementor/query/spel-from-same-expert’, function( $query ) {
// The author of the current post$author_id = get_field( ‘wp_authors’ );
$query->set( ‘author’, $author_id );
} );add_action( ‘elementor/query/shares-from-current_author’, function( $query ) {
// The author of the current post$author_id = get_the_author_meta(‘ID’);
$expert_id = get_field( ‘expert’, ‘user_’ . $author_id );
if( is_array( $expert_id ) ) $expert_id = $expert_id[ ‘ID’ ];
$meta_query = $query->get( ‘meta_query’ );
if( ! is_array( $meta_query ) ) $meta_query = [];
$meta_query[ ‘expert_id’ ] = [
‘key’ => ‘expert’,
‘compare’ => ‘==’,
‘value’ => $expert_id,
];$query->set( ‘meta_query’, $meta_query );
} );// CUSTOM FILTER // Add ANDELAR (SHARES) from same expert on EXPERT page
add_action( ‘elementor/query/andelar-from-same-expert’, function( $query ) {
// The author of the current post
$expert_id = get_the_ID();
$meta_query = $query->get( ‘meta_query’ );if( ! is_array( $meta_query ) ) $meta_query = [];
$meta_query[ ‘expert_id’ ] = [
‘key’ => ‘expert’,
‘compare’ => ‘==’,
‘value’ => $expert_id,
];$query->set( ‘meta_query’, $meta_query );
} );// Add Options Page
function add_my_options_page() {
if( function_exists(‘acf_add_options_page’) ) {
acf_add_options_page();
}
}
add_action( ‘plugins_loaded’, ‘add_my_options_page’ );// Don’t put anything except includes in this file
//Pick a place for your jsons to live. We stick them into the /theme/includes/acf-json folder, but you can stick these wherever// change where acf json files are saved
add_filter(‘acf/settings/save_json’, ‘jb_acf_save_json’);
function jb_acf_save_json($path) { return get_stylesheet_directory().’/includes/acf-json’; }// add our custom folder to places acf json are loaded from
add_filter(‘acf/settings/load_json’, ‘jb_acf_load_json’);
function jb_acf_load_json($paths) { return array_merge($paths, array(get_stylesheet_directory().’/includes/acf-json’)); }function custom_theme_slug_filter_the_content( $content ) {
global $wpdb;
if(“post” == get_post_type()){
//if(is_singular(‘posts’)){
$requested_post_id = get_the_ID();
$authordetails = get_field(‘acfe_author’, $requested_post_id);
$suthorname = $authordetails[‘display_name’];
$expert_args = array(
‘post_type’ => ‘expert’,
‘post_status’ => ‘publish’,
‘title’ => trim($suthorname),
‘orderby’ => ‘date’,
‘order’ => ‘DESC’
);
$query = new WP_Query($expert_args);
$postid = $query->post->ID;
$image = wp_get_attachment_image_src( get_post_thumbnail_id( $postid ), ‘full’ );
$custom_content = ‘<div id=”ctm-img-box” class=”custom-img-box”><span class=”elementor-icon-list-icon”></span><span class=”authorname”>’.$suthorname.'</span></div>’;
$custom_content .= $content;
//return $custom_content;
}else{
$custom_content = $content;
}
return $custom_content;
}
add_filter( ‘the_content’, ‘custom_theme_slug_filter_the_content’, 1);function wpa_choose_ad($user_id, $expert_id) {
$requested_post_id = get_the_ID();
$expert_user = get_field(‘wp_authors’, $requested_post_id);
//echo $user_id;
$args = array(
‘post_type’ => ‘share’,
‘posts_per_page’ => 12,
‘orderby’ => ‘rand’,
‘meta_query’ => array(
array(
‘key’ => ‘expert’,
‘value’ => $expert_id,
‘compare’ => “=”
)
)
);
$the_query = new WP_Query( $args );
//echo “"; //print_r($the_query); $the_ad = '<div class="elementor-container elementor-column-gap-no">'; $the_ad .= '<div class="element-row">'; $the_ad .= '<div class="elementor-widget-container elementor-widget-heading"><h4 class="elementor-heading-title elementor-size-default">MINA ANDELAR</h4></div>'; $the_ad .= '<div class="elementor-widget-container">'; $the_ad .= '<div class="ecs-posts elementor-posts-container elementor-posts elementor-grid elementor-posts--skin-custom">'; if ( $the_query->have_posts() ) { while ( $the_query->have_posts() ) : $the_query->the_post(); $title = get_the_title(); $url = get_permalink(get_the_ID()); $expert_type = get_field('type', get_the_ID()); $expert_shares = get_field('shares', get_the_ID()); $expert_price = get_field('price', get_the_ID()); $the_ad .= '<div class="share_outer_box">'; $the_ad .= '<div class="share_price_details">'; $the_ad .= '<p>'.$expert_type.'</p>'; $the_ad .= '<p>'.$expert_shares.' andler | '.$expert_price.' SEK</p>'; $the_ad .= '</div>'; $the_ad .= '<h2 class="custom-title elementor-heading-title elementor-size-default">'.$title.'</h2>'; $the_ad .= '</div>'; endwhile; } $the_ad .= '</div>'; $the_ad .= '</div>'; $the_ad .= '</div>'; $the_ad .= '</div>'; wp_reset_postdata(); return $the_ad; } function filter_function_name( $query_args, $sfid ) { //if search form ID = 19856, the do something with this query if($sfid==19856) { //modify $query_args here before returning it // args $args = array( 'post_type' => 'shares', 'meta_query' => array( 'relation' => 'OR', array( 'key' => 'type', 'value' => 'Europatipset', 'compare' => 'LIKE' ), array( 'key' => 'type', 'value' => 'Stryktipset', 'compare' => 'LIKE' ) ) ); } return $query_args; } add_filter( 'sf_edit_query_args', 'filter_function_name', 20, 2 );
August 24, 2020 at 9:16 am #257055In reply to: Multiple POST META Conditions
ThomasParticipantfunction filter_function_name( $query_args, $sfid ) {
//if search form ID = 19856, the do something with this query
if($sfid== 19856)
{
//modify $query_args here before returning it
// args
$args = array(
‘post_type’ => ‘shares’,
‘meta_query’ => array(
‘relation’ => ‘OR’,
array(
‘key’ => ‘type’,
‘value’ => ‘%v86%’,
‘compare’ => ‘LIKE’
),
array(
‘key’ => ‘type’,
‘value’ => ‘%gs75%’,
‘compare’ => ‘LIKE’
)
)
);
}return $query_args;
}
add_filter( ‘sf_edit_query_args’, ‘filter_function_name’, 20, 2 );July 23, 2020 at 1:32 pm #253659In reply to: Form on a single-post
Noeste IJverParticipantI’ve solved it with some workarounds. I will post my solution for other people:
Form settings:
– configured the form display method as ‘custom’;
– added a results url of a random page (it needs to be filled);
– enabled Ajax loading and configured a div as Ajax container;
– enabled ‘make searches bookmarkable’;
– enabled Ajax pagination.I added a filter in functions.php, so the results url for this specific form will always be overwritten with the current permalink:
function filter_function_name( $url, $sfid) { if (get_post_field('post_name', $sfid) == 'agenda-shadow-single-post') { $url = get_permalink(); } return $url; } add_filter( 'sf_results_url', 'filter_function_name', 10, 2 );
I implemented the form in template files as following:
<?php // retrieving the the form by using the slug $sf_form_obj = get_page_by_path('agenda-shadow-single-post', OBJECT, 'search-filter-widget'); if ($sf_form_obj) { $args['search_filter_id'] = $sf_form_obj->ID; $query = new WP_Query($args); if ($query->have_posts()) { while ($query->have_posts()) { $query->the_post(); get_template_part('template-parts/blocks/block-activiteit'); } } else { ?> <div class='search-filter-results-list' data-search-filter-action='infinite-scroll-end'></div> <?php } } ?>
I tried to alter the query args with the
sf_edit_query_args
filter, but it didn’t work for me. So I wrote some JavaScript to modify the value of the filter of the post-type that’s currently being viewed. After that I’ve hidden the filter, so it won’t be changed by the user. I did this with a function that’s being triggered on these ajax events:jQuery(document).on("sf:ajaxstart sf:init sf:ajaxfinish", ".searchandfilter", function () { fillFilterOnLocation(); });
June 16, 2020 at 5:06 pm #249021Topic: Search by geolocation
in forum Search & Filter Pro
starenlaredParticipantHello!
From what I’ve seen in other forum posts, geolocation search functionality is not yet available.
We are planning to implement it ourselves, but I would like you to confirm if I could do it with the filters available in your plugin.
First of all, you would need to include a new field in the form, with a Km distance selector. With which filter could I do it? I have not seen this specifically in the documentation
Secondly, for searches I have seen that I could use a plugin like this: https://gschoppe.com/wordpress/location-searches/ that extends the WP Query class and then use your sf_edit_query_args filter to add the filter for X km away from the user’s location. Have you done any tests with this type of systems? Would it work well in conjunction with your plugin?
I await your response, thank you very much!
June 9, 2020 at 9:31 am #247976
Michael PanettaParticipantThe code got all mixed up, so here I have posted it again
I have couple of issues
See this page
https://acu2020dev.wpengine.com/story
I have created a page template and added the shortcodesecho do_shortcode('[searchandfilter id="133"]'); echo do_shortcode('[searchandfilter id="133" show="results"]');
I am showing a featured post first and then I am showing the listing
As I dont want to show the featured post I added the following codefunction filter_function_name( $query_args, $sfid ) { //echo “Coming here”; //if search form ID = 225, the do something with this query if($sfid==133) { //modify $query_args here before returning it if (is_page_template(‘page-templates/stories.php’)) { //echo “This is “.get_queried_object_id(); $featured_story = get_field(“featured_story_landingpage”,get_queried_object_id()); $exclude = array($featured_story->ID); $query_args[‘post__not_in’] = $exclude; } } return $query_args; } add_filter( ‘sf_edit_query_args’, ‘filter_function_name’, 20, 2 );
This works alright when the page is loaded, but when I click the Clear filter button or when a category is selected, the above exclusion is ignored and the featured post is shown in the listing
What am I doing wrong? or is this a bug in the plugin?
Also how can I show a numbered pagination?
regards -
AuthorSearch Results