-
AuthorSearch Results
-
April 6, 2017 at 9:07 pm #101872
In reply to: Results showing without any search
RossKeymasterWrap it in a function should work as loading the script in the footer directly has no dependency, so jquery or S&F might not even be loaded properly –
<script> (function ( $ ) { $(document).on("sf:ajaxfinish", ".searchandfilter", function(){ console.log("ajax complete"); //so load your lightbox or JS scripts here again document.getElementById("sfresults").style.display = "inline"; }); }(jQuery)); </script>
You can actually check in your results template (no need for JS) if something has been filtered, to display alternate content, check out this reply –
https://support.searchandfilter.com/forums/topic/search-and-filter-issues/#post-97498
And docs:
Best
April 6, 2017 at 7:07 pm #101840In reply to: Results showing without any search
AnonymousInactiveHi,
Was wondering if this option to hide results by default has been enabled in the latest version. I require this functionality too.
I tried by setting the style for the results div with id “sfresults” to “display:none” in the css file and then added the below code in footer.php but it does not work. The hidden div on page load does not change its style on completion of ajax request.
*****************************
*****************************Please help.
April 1, 2017 at 7:47 pm #100877In reply to: Pagination not working
RossKeymasterHi Pierre
Ok couple of things.
1) Redownload the S&F VC (not pro) plugin above (I updated it, same name, same zip so download again and re-install)
2) Add this to functions.php of your theme:
add_filter( 'search_filter_vc_pagination', 'search_filter_vc_pagination' ); function search_filter_vc_pagination() { global $wp_query; $big = 999999999; // need an unlikely integer $translated = __( 'Page', 'mytextdomain' ); // Supply translatable string $output = 'Custom Pagination: '; $output .= paginate_links( array( 'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ), 'format' => '?paged=%#%', 'current' => max( 1, get_query_var('paged') ), 'total' => $wp_query->max_num_pages, 'before_page_number' => '<span class="screen-reader-text">'.$translated.' </span>' ) ); return $output; }
—-
Now when you check the pagination, I’m sure it won’t look how you want, but you will see the message “Custom Pagination”?
What I’ve done is added another way to customise pagination, by adding this code to functions.php, you can literally use any WP functions to create your pagination – basically you get full control.
The code I added above is just one example of how you can add in your own pagination, in this example I am using the WP function
paginate_links
.If you do not add the above code to functions.php, then the pagination will work as it currently does (from your screenshot) and is generated by another WP pagination function
get_the_posts_pagination
– both can look pretty much the same – I’m just demonstrating flexibility by using another WP function to do the job.—-
You mention customisation / integration with your theme.
Unfortunately thats out of remit of our support here – what you are looking for is how to make the WP functions
paginate_links
orget_the_posts_pagination
, work and look nice with your theme.This is something you should talk to your theme devs/support about. They will likely have a snippet of code (probably already used in some other template files) that you could literally copy and paste.
If you manage to get hold of the correct code to use to integrate the WP functions with your theme and use the correct styles, but you are still stuck, I can advise on how to integrate that with our code above just let me know.
Hope that helps!
Best
March 27, 2017 at 9:23 am #99600In reply to: Apply the filter to an existing portfolio page
TrevorParticipantDid the page builder come with the theme (is the theme ‘Mega’?), or is it a separate plugin from a third party author? Mega seems to have its own page builder included.
Do you place content on the page using widgets, and in those can you place shortcodes?
Are you able to place a widget with a shortcode directly above the portfolio grid, and if so, can you try this shortcode?
[searchandfilter id="1459" action="filter_next_query"]
Your grid might be using the
masonry
script as well, so it may be necessary to re-trigger the masonry script as well, using code like this:<script>(function ( $ ) { "use strict"; $(document).on("sf:ajaxfinish", ".searchandfilter", function(){ console.log("ajax complete"); \\ your script to re-trigger masonry }); }(jQuery)); </script>
However, you would the help of your theme author to provide the code for that one line. It varies from theme to theme.
However, in your case I think
reloaditems
is the way to go, as shown on this page:http://masonry.desandro.com/methods.html#reloaditems
So the line of script would be this:
$grid.masonry('reloadItems');
But, you need to define
$grid
, like this maybe:jQuery('portfolio-container-style-1').masonry('reloadItems');
So you script might be (and I say MIGHT):
<script>(function ( $ ) { "use strict"; $(document).on("sf:ajaxfinish", ".searchandfilter", function(){ console.log("ajax complete"); jQuery('portfolio-container-style-1').masonry('reloadItems'); }); }(jQuery)); </script>
However, it is also possible it uses the Isotope relayout function:
http://isotope.metafizzy.co/v1/demos/relayout.html
Like this:
<script>(function ( $ ) { "use strict"; $(document).on("sf:ajaxfinish", ".searchandfilter", function(){ console.log("ajax complete"); jQuery('portfolio-container-style-1').isotope('relayout'); }); }(jQuery)); </script>
March 15, 2017 at 9:28 pm #97180In reply to: Uncode VC results
AnonymousInactiveHi Trevor,
Yes it came with the theme. However, in this thread it seemed to work for a person with the same theme as me. Do you know how it was fixed?
https://support.searchandfilter.com/forums/topic/style-results-to-fit-theme-vc/
Thanks!
Susana
March 14, 2017 at 6:19 pm #96820Topic: Uncode VC results
in forum Search & Filter Pro
AnonymousInactiveHi,
I’m using the theme Uncode. I have been trying to use the extension for VC so my results display with masonry / isotope. However, I cant find how to insert the data source. I found this thread:
https://support.searchandfilter.com/forums/topic/style-results-to-fit-theme-vc/
But cant see what the solution was since it was marked private. Please advice.
Thanks!
Susana
March 14, 2017 at 4:42 pm #96754In reply to: Filter Results Not Correct
AnonymousInactiveNo, that’s a fair question. I was frankly not entirely sure if it was the right solution to my issues, but left it installed for the time being in case I needed it later.
The reason I wasn’t sure is because it seemed specific to ‘Post Grid’, whereas in VC we’re using the ‘Blog’ component that has the specific thumbnail layout we want, but also might only be part of Artbees modified VC that they use for their themes (I’m not familiar with stock VC so don’t know what’s normally included).
At this point, it might make more sense for me to just use ‘Post Grid’ and try to style it in such a way that it’s similar to the thumbnail.php layout from the ‘Blog’ component.
I did notice in your test page, and the one I re-created, that when you select one of the filters it zeros out the other two options. So in the test page it shows 5 Stars (1) 3 Stars (1) 1 Star (1), but when you select one of the filters the other two have (0) for some reason, thus resulting in an inability to have more than one option selected. I assume this isn’t expected behavior?
March 13, 2017 at 7:11 pm #96412In reply to: SEO friendly page results
AnonymousInactiveTrevor,
Thanks for sharing the link to your VC build page, and yes, I see that your posts are displayed properly.
My VC page appears to be using traditional divs. Below is the output for my grid. Does this give you any indication as to my the individual posts are not listed?
<!-- Begin Article --> <article id="post-10340" class="clearfix post-10340 page type-page status-publish"> <div class="article-content"> <section class="container-wrap main-color " style="padding-top:40px;padding-bottom:40px" > <div class="section-container container"> <div class="vc_row vc_row-fluid row"> <div class="wpb_column vc_column_container vc_col-sm-12"> <div class="vc_column-inner "> <div class="wpb_wrapper"><!-- vc_grid start --> <div class="vc_grid-container-wrapper vc_clearfix" > <div class="vc_grid-container vc_clearfix wpb_content_element vc_masonry_grid search-filter-results search-filter-results-10254" data-initial-loading-animation="zoomIn" data-vc-grid-settings="{"page_id":10340,"style":"all-masonry","action":"vc_get_vc_grid_data","shortcode_id":"1488737968628-35765a42-af9c-2","tag":"vc_masonry_grid"}" data-vc-request="http://www.portlandcreativelist.dev/wp-admin/admin-ajax.php?sort_order=title asc" data-vc-post-id="10340" data-vc-public-nonce="957fe584e6"> </div> </div><!-- vc_grid end --> </div> </div> </div> </div> </div> </section><!-- end section --> </div><!--end article-content--> </article> <!-- End Article -->
March 10, 2017 at 2:09 pm #95972Topic: fail on submit No refresh
in forum Search & Filter Pro
AnonymousInactiveHi. Apart from the previous question ….
I’m having problems with the plugin. I do not know why since we changed styles. The plugin form only looks the first time.
In other words: I select a filter and click on “submit”. It does it correctly. But if I re-filter and re-click on “submit” no longer searches. I think the problem is that it does not refresh the page.
Any idea why?Thank you!
March 7, 2017 at 3:39 pm #95245In reply to: infinite scroll classipress theme
AnonymousInactive<?php
/**
* Setup ClassiPost Child Theme textdomain.
*
* Declare textdomain for this child theme.
* Translations can be filed in the /languages/ directory.
*/
function classipost_theme_setup() {
load_child_theme_textdomain( ‘classipost’, get_stylesheet_directory() . ‘/languages’ );/**
* Add image sizes
*/
add_theme_support( ‘post-thumbnails’ );
add_image_size( ‘ad-thumb’, 75, 75, true );
add_image_size( ‘ad-medium’, 450, 300, true );
add_image_size( ‘ad-featured’, 500, 500, true );
add_image_size( ‘ad-large’, 725, 490, true );
}
add_action( ‘after_setup_theme’, ‘classipost_theme_setup’ );/*
* Load the Options Panel
*/define( ‘OPTIONS_FRAMEWORK_DIRECTORY’, get_stylesheet_directory_uri() . ‘/inc/’ );
require_once dirname( __FILE__ ) . ‘/inc/options-framework.php’;// Loads options.php from child or parent theme
$optionsfile = locate_template( ‘options.php’ );
load_template( $optionsfile );add_action( ‘optionsframework_after’, ‘optionscheck_display_sidebar’ );
function optionscheck_display_sidebar() { ?>
<div id=”optionsframework-sidebar”>
<div class=”metabox-holder”>
<div class=”postbox”>
<h3>ClassiPost Child Theme</h3>
<div class=”inside”>
<p>If you’ve reached this far, you probably bought this child theme and you’re looking to set it up for your own needs.</p>
<p>Don’t forget to follow the installation steps and also to save these options for the first time.</p>
<p>Feel free to look around and change these settings as you want.</p>
<p>If you need general help regarding this child theme, or you think you found bugs, you can ask for support on the dedicated forum.</p>
<p>NOTE: <i>I do not provide support for <u>custom development</u> of the Child Theme. I will generally answer such questions with guidance and even small code samples but do not expect me to do all your work.</i></p>
</div>
</div>
</div>
</div>
<?php }/*
* This function loads an additional CSS file for the options panel
* which allows us to style the sidebar
*/if ( is_admin() ) {
$of_page= ‘classipress_page_classipost-options’;
add_action( “admin_print_styles-$of_page”, ‘optionsframework_custom_css’, 100);
}function optionsframework_custom_css () {
wp_enqueue_style(
‘optionsframework-custom-css’,
get_stylesheet_directory_uri() .’/inc/css/options-custom.css’
);
}/*
* This one shows/hides the location option when a radio box is clicked.
*/
add_action( ‘optionsframework_custom_scripts’, ‘optionsframework_custom_scripts’ );
function optionsframework_custom_scripts() {
if (is_admin()) {
?>
<script type=”text/javascript”>
jQuery(document).ready(function($) {$(‘#section-classipost_custom_meta’).hide();
$(‘input[name=classipost-child-theme\\[classipost_location\\]]’).change(function () { //use change event
if (this.value == ‘custom_location_field’) { //check value if it is custom_location_field
$(‘#section-classipost_custom_meta’).stop(true,true).show(500); //than show
} else {
$(‘#section-classipost_custom_meta’).stop(true,true).hide(500); //else hide
}
});
});
</script>
<?php
}
}add_action(‘admin_init’,’optionscheck_change_santiziation’, 100);
function optionscheck_change_santiziation() {
remove_filter( ‘of_sanitize_textarea’, ‘of_sanitize_textarea’ );
add_filter( ‘of_sanitize_textarea’, ‘of_sanitize_textarea_custom’ );
}function of_sanitize_textarea_custom($input) {
return $input;
}function of_get_default( $option ) {
$defaults = optionsframework_options();
if ( isset( $defaults[$option][‘std’] ) ) {
return $defaults[$option][‘std’];
}
return false; // default if no std is set
}/* Convert hexdec color string to rgb(a) string */
function hex2rgba($color, $opacity = false) {$default = ‘rgb(255,204,51)’;
//Return default if no color provided
if(empty($color))
return $default;//Sanitize $color if “#” is provided
if ($color[0] == ‘#’ ) {
$color = substr( $color, 1 );
}//Check if color has 6 or 3 characters and get values
if (strlen($color) == 6) {
$hex = array( $color[0] . $color[1], $color[2] . $color[3], $color[4] . $color[5] );
} elseif ( strlen( $color ) == 3 ) {
$hex = array( $color[0] . $color[0], $color[1] . $color[1], $color[2] . $color[2] );
} else {
return $default;
}//Convert hexadec to rgb
$rgb = array_map(‘hexdec’, $hex);//Check if opacity is set(rgba or rgb)
if($opacity){
if(abs($opacity) > 1)
$opacity = 1.0;
$output = ‘rgba(‘.implode(“,”,$rgb).’,’.$opacity.’)’;
} else {
$output = ‘rgb(‘.implode(“,”,$rgb).’)’;
}//Return rgb(a) color string
return $output;
}/*
* Theme options custom CSS
*/
function classipost_inline_css(){
$classipost_layout = of_get_option(‘col-layout’, of_get_default(‘col-layout’));
$body_background = of_get_option(‘background_picker’, of_get_default(‘background_picker’ ));
$header_image = of_get_option(‘header_image’, of_get_default(‘header_image’ ));
$header_background = of_get_option(‘header_image’, of_get_default(‘header_image’ ));
$header_menu_text_color = of_get_option(‘header_menu_text_color’, of_get_default(‘header_menu_text_color’ ));
$header_text_color = of_get_option(‘header_text_color’, of_get_default(‘header_text_color’ ));
$header_height = of_get_option(‘header_height’, of_get_default(‘header_height’ ));
$color_searchbar = of_get_option(‘color_searchbar’, of_get_default(‘color_searchbar’ ));
$color_link = of_get_option(‘color_link’, of_get_default(‘color_link’ ));
$color_button = of_get_option(‘color_button’, of_get_default(‘color_button’ ));
$color_topbar = of_get_option(‘color_topbar’, of_get_default(‘color_topbar’ ));
$color_footer_menu = of_get_option(‘color_footer_menu’, of_get_default(‘color_footer_menu’ ));
$color_footer = of_get_option(‘color_footer’, of_get_default(‘color_footer’ ));
$custom_css = of_get_option(‘custom_css’, of_get_default(‘custom_css’ ));
?>
<style type=”text/css”>
<?php echo $classipost_layout; ?><?php if (!empty( of_get_option(‘background_picker’) != of_get_default(‘background_picker’ ))) { ?>
/* Dynamic Body Background Color or Image */
body {
background: <?php echo $body_background[‘color’] . ‘ url(‘ . $body_background[‘image’] . ‘) ‘ . $body_background[‘repeat’] . ‘ ‘ . $body_background[‘position’] . ‘ ‘ . $body_background[‘attachment’];?>;
}
<?php } ?>
<?php if ( of_get_option(‘custom_header’, of_get_default(‘custom_header’ )) == 1 ) { ?>
/* Dynamic Header Background Color or Image */
@media screen and (min-width:768px){
.header-image {
background: <?php echo ‘linear-gradient(‘. hex2rgba($header_background[‘color’],0.2) .’,’. hex2rgba($header_background[‘color’],0.2) .’)’,’, url(‘ . $header_background[‘image’] . ‘) ‘ . $header_background[‘repeat’] . ‘ ‘ . $header_background[‘position’] . ‘ ‘ . $header_background[‘attachment’];?>;
background-size: cover;
height: <?php echo $header_height; ?>;
margin-bottom: 15px;
}
<?php if (!empty( of_get_option(‘color_searchbar’) == of_get_default(‘color_searchbar’ ))) { ?>
.main-header.header-image {
border-top: 5px solid <?php echo $color_searchbar; ?>;
}
<?php } ?><?php if ( of_get_option(‘header_position’, of_get_default(‘header_position’ )) == 1 && of_get_option(‘color_searchbar’) == of_get_default(‘color_searchbar’ )) {?>
.header-image .search-wrap {
padding-top: 10px;
}
<?php } ?>.header-message h1.header-title, .header-message .header-text {
color: <?php echo $header_text_color; ?>;
filter: drop-shadow(0 2px 5px rgba(0,0,0,0.7));
}
.header-message {
margin: 10px 10px 50px 10px;
}.header-message .btn-lg {
font-size: 24px;
font-weight: 700;
}#primary-menu.header-menu-home .navbar-nav>li>a {
color: <?php echo $header_menu_text_color; ?>;
}
}
<?php } ?>
<?php if (!empty( of_get_option(‘color_topbar’) != of_get_default(‘color_topbar’ ))) { ?>
/* Dynamic Top Bar Color */
.top-header {
background: <?php echo $color_topbar; ?>;
}
<?php } ?>
<?php if (!empty( of_get_option(‘color_searchbar’) != of_get_default(‘color_searchbar’ ))) { ?>
/* Dynamic Search Bar Color */
#affix-menu.affix-top {
background: <?php echo hex2rgba($color_searchbar, 0.3); ?>;
}
#affix-menu.affix {
background: <?php echo hex2rgba($color_searchbar, 0.5); ?>;
}
<?php } ?>
<?php if (!empty( of_get_option(‘color_link’) != of_get_default(‘color_link’ ))) { ?>
/* Dynamic Links Color */
a{
color: <?php echo $color_link; ?>;
}
a:hover, a:focus {
color: <?php echo $color_link; ?>;
}
<?php } ?>
<?php if (!empty( of_get_option(‘color_button’) != of_get_default(‘color_button’ ))) { ?>
/* Dynamic Button Color */
.orangebutton {
background-color: <?php echo $color_button; ?>;
border-color: <?php echo $color_button; ?>;
}
.orangebutton:hover {
background-color: <?php echo $color_button; ?>;
border-color: <?php echo $color_button; ?>;
}
.btn_orange,
.reports_form input[type=”submit”] {
background-color: <?php echo $color_button; ?>;
}
.btn_orange:hover,
.order-gateway input[type=”submit”]:hover,
.reports_form input[type=”submit”]:hover {
background-color: <?php echo $color_button; ?>;
}
<?php } ?>
<?php if (!empty( of_get_option(‘color_footer_menu’) != of_get_default(‘color_footer_menu’ ))) { ?>
/* Dynamic Footer Menu Color */
.footer-nav-menu {
background: <?php echo $color_footer_menu; ?>;
}
<?php } ?>
<?php if (!empty( of_get_option(‘color_footer’) != of_get_default(‘color_footer’ ))) { ?>
/* Dynamic Footer Background Color */
.footer {
background: <?php echo $color_footer; ?>;
}
<?php } ?>
<?php if (!empty( of_get_option(‘custom_css’) != of_get_default(‘custom_css’ ))) { ?>
/* Dynamic Custom CSS */
<?php echo $custom_css; ?>
<?php } ?></style>
<?php
}
add_action(‘wp_head’,’classipost_inline_css’);// Load different color stylesheet
function options_stylesheets_alt_style() {
if ( of_get_option( ‘stylesheet’, of_get_default(‘stylesheet’ ) ) ) {
wp_enqueue_style( ‘options_stylesheets_alt_style’, of_get_option(‘stylesheet’, of_get_default(‘stylesheet’ )), array(), null );
}
}
add_action( ‘wp_enqueue_scripts’, ‘options_stylesheets_alt_style’, 100 );/**
* Load ClassiPost custom scripts
*/
function classipost_enqueue_scripts() {
global $cp_options;
// reload gmaps with geolocation support
wp_deregister_script( ‘google-maps’ );
$gmap_params = array(
‘language’ => $cp_options->gmaps_lang,
‘region’ => $cp_options->gmaps_region,
‘libraries’ => ‘places’
);if ( $cp_options->api_key ) {
$gmap_params[‘key’] = $cp_options->api_key;
}$google_maps_url = ( is_ssl() ? ‘https’ : ‘http’ ) . ‘://maps.googleapis.com/maps/api/js’;
$google_maps_url = add_query_arg( $gmap_params, $google_maps_url );
$protocol = is_ssl() ? ‘https’ : ‘http’;
wp_enqueue_script(‘bootstrap-js’, get_stylesheet_directory_uri() . ‘/js/bootstrap.min.js’, false, ‘3.3.6’);
wp_enqueue_script(‘bootstrap-select-js’, get_stylesheet_directory_uri() . ‘/js/bootstrap-select.min.js’, false, ‘1.10.0’);
wp_enqueue_script(‘bootstrap-dropdown-js’, get_stylesheet_directory_uri() . ‘/js/bootstrap-hover-dropdown.min.js’, false, ‘2.2.1’);
wp_enqueue_script(‘tabcollapse-js’, get_stylesheet_directory_uri() . ‘/js/bootstrap-tabcollapse.js’, false, ‘1.0.0’);
if ( is_single() ) {
wp_enqueue_script(‘lightgallery-js’, get_stylesheet_directory_uri() . ‘/js/lightgallery/js/lightgallery-all.min.js’, false, ‘1.4.4’);
wp_enqueue_script(‘mousewheel-js’, get_stylesheet_directory_uri() . ‘/js/jquery.mousewheel.min.js’, false, ‘3.1.12’);
}
wp_enqueue_script(‘owl-carousel-js’, get_stylesheet_directory_uri() . ‘/js/owl.carousel2.min.js’, false, ‘2.1.1’);
if (of_get_option(‘infinitescroll’, of_get_default(‘infinitescroll’ )) == ‘infinite’) {
wp_enqueue_script(‘infinitescroll’, get_stylesheet_directory_uri() . ‘/js/jquery.infinitescroll.min.js’, array(‘jquery’), ‘1.1’);
}if ( is_page_template( ‘tpl-ads-home.php’ ) && of_get_option(‘custom_header’, of_get_default(‘custom_header’ )) == 1 ) {
wp_enqueue_script(‘typed’, get_stylesheet_directory_uri() . ‘/js/typed.min.js’, array(‘jquery’), ‘1.1.4’);
}
wp_enqueue_script( ‘google-maps’, $google_maps_url, array( ‘jquery’ ), ‘3.0’ );
if (of_get_option(‘classipost_location’, of_get_default(‘classipost_location’ )) == ‘city_geolocation’) {
wp_enqueue_script(‘geotext-js’, get_stylesheet_directory_uri() . ‘/js/geotext.min.js’, false, ‘1.0.0’);
}
wp_enqueue_script(‘classipost-js’, get_stylesheet_directory_uri() . ‘/js/classipost.js’, false, ‘1.0.0’);// only load the general.js if available in child theme
if ( file_exists( get_stylesheet_directory() . ‘/js/custom.js’ ) ) {
wp_enqueue_script( ‘custom-js’, get_stylesheet_directory_uri() . ‘/js/custom.js’, array( ‘jquery’ ), ‘1.0’ );
}
}
add_action( ‘wp_enqueue_scripts’, ‘classipost_enqueue_scripts’, 99 );/**
* Enqueue both Parent and child theme stylesheets.
* This makes sure that the child theme stylesheet is loaded after the parent sheet.
*/
function classipost_enqueue_styles() {
$protocol = is_ssl() ? ‘https’ : ‘http’;
$parent_style = ‘at-main’;
wp_enqueue_style( $parent_style, get_template_directory_uri() . ‘/style.css’ );
wp_enqueue_style(‘bootstrap’, get_stylesheet_directory_uri() . ‘/js/assets/bootstrap.min.css’, false, ‘3.3.6’);
wp_deregister_style( ‘font-awesome’);
wp_register_style( ‘font-awesome’, get_stylesheet_directory_uri() . ‘/js/assets/font-awesome.min.css’, false, ‘4.6.3’ );
wp_enqueue_style( ‘font-awesome’);
wp_enqueue_style(‘bootstrap-select-css’, get_stylesheet_directory_uri() . ‘/js/assets/bootstrap-select.min.css’, false, ‘1.10.0’);
wp_enqueue_style(‘owl-carousel’, get_stylesheet_directory_uri() . ‘/js/assets/owl.carousel.min.css’, false, ‘2.1.1’);
wp_enqueue_style(‘owl-theme’, get_stylesheet_directory_uri() . ‘/js/assets/owl.theme.default.min.css’, false, ‘2.1.1’);
if ( is_single() ) {
wp_enqueue_style(‘lightgallery’, get_stylesheet_directory_uri() . ‘/js/lightgallery/css/lightgallery.min.css’, false, ‘1.4.4’);
}
wp_enqueue_style(‘classipost-main’, get_stylesheet_directory_uri() . ‘/style.css’, array( $parent_style ) );
}
add_action( ‘wp_enqueue_scripts’, ‘classipost_enqueue_styles’ );// Remove Classipress color stylesheets
function classipost_dequeue_styles() {
wp_dequeue_style( ‘at-color’);
wp_dequeue_style( ‘open-sans’ );
wp_dequeue_script( ‘tinynav’);
wp_dequeue_script( ‘selectbox’);
wp_dequeue_script( ‘jqueryeasing’);
wp_dequeue_script( ‘jcarousellite’);
wp_dequeue_script( ‘colorbox’ );
}
add_action( ‘wp_enqueue_scripts’, ‘classipost_dequeue_styles’, 99 );/**
* Remove emoji
*/
function disable_wp_emojicons() {// all actions related to emojis
remove_action( ‘admin_print_styles’, ‘print_emoji_styles’ );
remove_action( ‘wp_head’, ‘print_emoji_detection_script’, 7 );
remove_action( ‘admin_print_scripts’, ‘print_emoji_detection_script’ );
remove_action( ‘wp_print_styles’, ‘print_emoji_styles’ );
remove_filter( ‘wp_mail’, ‘wp_staticize_emoji_for_email’ );
remove_filter( ‘the_content_feed’, ‘wp_staticize_emoji’ );
remove_filter( ‘comment_text_rss’, ‘wp_staticize_emoji’ );
// filter to remove TinyMCE emojis
add_filter( ‘tiny_mce_plugins’, ‘disable_emojicons_tinymce’ );
// remove DNS prefetch
add_filter( ’emoji_svg_url’, ‘__return_false’ );
}
add_action( ‘init’, ‘disable_wp_emojicons’ );function disable_emojicons_tinymce( $plugins ) {
if ( is_array( $plugins ) ) {
return array_diff( $plugins, array( ‘wpemoji’ ) );
} else {
return array();
}
}/**
* Remove cp color customizer for now
*/
function remove_color_customizer() {
remove_action( ‘wp_head’, ‘_cp_customize_css’, 999 );
remove_action( ‘customize_controls_enqueue_scripts’, ‘_cp_enqueue_customizer_color_previewer’ );
remove_action( ‘customize_register’, ‘_cp_customize_color_scheme’ );
//remove_action( ‘after_setup_theme’, ‘cp_custom_header_setup’ );
remove_action( ‘customize_register’, ‘_cp_customize_site’ );
remove_action( ‘customize_register’, ‘_cp_customize_footer’ );
}
add_action (‘init’, ‘remove_color_customizer’);/**
* Register top menu navigation positioon
*/
function classipost_register_top_menu() {
register_nav_menu( ‘Top’, __( ‘Top Navigation’, ‘classipost’ ) );
if ( !is_nav_menu( ‘Top’ )) {
$menu_id = wp_create_nav_menu( ‘Top’ );
$menu = array( ‘menu-item-type’ => ‘custom’, ‘menu-item-url’ => get_home_url(‘/’),’menu-item-title’ => ‘Home’ );
wp_update_nav_menu_item( $menu_id, 0, $menu );
}
}
add_action( ‘init’, ‘classipost_register_top_menu’ );/**
*Register bootstrap navigation walker
*/
require_once(get_stylesheet_directory().’/wp_bootstrap_navwalker.php’);/**
* Displays ad thumbnail. Use in the loop.
*
* @return void
*/
if ( ! function_exists( ‘cp_ad_loop_thumbnail’ ) ) :
function cp_ad_loop_thumbnail() {
global $post, $cp_options;// go see if any images are associated with the ad
$image_id = cp_get_featured_image_id( $post->ID );// set the class based on if the hover preview option is set to “yes”
$prevclass = ( $cp_options->ad_image_preview ) ? ‘preview’ : ‘nopreview’;if ( $image_id > 0 ) {
// get 450×300 image size
$adthumbarray = wp_get_attachment_image( $image_id, ‘ad-medium’ );// grab the large image for onhover preview
$adlargearray = wp_get_attachment_image_src( $image_id, ‘ad-large’ );
$img_large_url_raw = $adlargearray[0];// must be a v3.0.5+ created ad
if ( $adthumbarray ) {
echo ‘‘. $adthumbarray .’‘;// maybe a v3.0 legacy ad
} else {
$adthumblegarray = wp_get_attachment_image_src($image_id, ‘thumbnail’);
$img_thumbleg_url_raw = $adthumblegarray[0];
echo ‘‘. $adthumblegarray .’‘;
}// no image so return the placeholder thumbnail
} else {
echo ‘‘;
}}
endif;/**
* Displays ad thumbnail for featured ads. Use in the loop.
*
* @return void
*/
if ( ! function_exists( ‘cp_ad_featured_thumbnail’ ) ) :
function cp_ad_featured_thumbnail() {
global $post, $cp_options;// go see if any images are associated with the ad
$image_id = cp_get_featured_image_id( $post->ID );// set the class based on if the hover preview option is set to “yes”
$prevclass = ( $cp_options->ad_image_preview ) ? ‘preview’ : ‘nopreview’;if ( $image_id > 0 ) {
// get 500×500 image size
$adthumbarray = wp_get_attachment_image( $image_id, ‘ad-featured’ );// grab the large image for onhover preview
$adlargearray = wp_get_attachment_image_src( $image_id, ‘ad-large’ );
$img_large_url_raw = $adlargearray[0];// must be a v3.0.5+ created ad
if ( $adthumbarray ) {
echo ‘‘. $adthumbarray .’‘;// maybe a v3.0 legacy ad
} else {
$adthumblegarray = wp_get_attachment_image_src($image_id, ‘thumbnail’);
$img_thumbleg_url_raw = $adthumblegarray[0];
echo ‘‘. $adthumblegarray .’‘;
}// no image so return the placeholder thumbnail
} else {
echo ‘‘;
}}
endif;/**
* Displays all the images and thumbnails for the single page ad with support for Owl Carousel 2.
*
* @param int $post_id (optional)
* @param string $size (optional)
* @param string $title (optional)
*
* @return void
*/
if ( ! function_exists( ‘cp_get_image_url_single’ ) ) {
function cp_get_image_url_single( $post_id = ”, $size = ”, $title = ” ) {$attachment_query = array(
‘post_type’ => ‘attachment’,
‘post_status’ => null,
‘post_parent’ => $post_id,
‘order’ => ‘ASC’,
‘orderby’ => ‘ID’,
‘no_found_rows’ => true
);$attachment_ids = get_post_meta( $post_id, ‘_app_media’, true );
if ( ! empty( $attachment_ids ) ) {
$attachment_query = array_merge( $attachment_query, array(
‘post__in’ => $attachment_ids,
‘orderby’ => ‘post__in’
) );
}// go see if any images are associated with the ad
$images = get_children( $attachment_query );
$image_count = cp_count_ad_images($post_id);
$i = 1;
if ( $images ) {
foreach ( $images as $image ) {
$alt = get_post_meta( $image->ID, ‘_wp_attachment_image_alt’, true );
if ( empty( $alt ) ) {
$alt = $title . ‘ – ‘ . __( ‘Image ‘, APP_TD ) . $i;
}
$iarray = wp_get_attachment_image_src( $image->ID, $size, $icon = false );
$farray = wp_get_attachment_image_src( $image->ID, ‘full’, $icon = false );
//$image_count = cp_count_ad_images($post_id);
if ( $image_count > 1 ) {
$tarray = wp_get_attachment_image_src( $image->ID, ‘ad-thumb’, $icon = false );
echo ‘<div class=”ad-thumb” data-src=”‘. $farray[0] .'” data-thumb=”‘. $tarray[0] .'” data-dot=”“></div>’;
}if ( $image_count == 1 ) {
echo ‘<div class=”ad-thumb” data-src=”‘. $farray[0] .'”></div>’;
}$i++;
}
}
if ( $image_count < 1 ) {
echo ‘<div></div>’;
}
}
}add_action( ‘init’ , ‘classipost_remove_ad_actions’ );
function classipost_remove_ad_actions() {
remove_action( ‘appthemes_before_post_title’, ‘cp_ad_loop_price’ );
remove_action( ‘appthemes_after_post_title’, ‘cp_ad_loop_meta’ );
remove_action( ‘appthemes_after_post_content’, ‘cp_do_loop_stats’ );
remove_action( ‘appthemes_after_blog_post_content’, ‘cp_do_loop_stats’ );
remove_action(‘appthemes_after_blog_post_title’, ‘cp_blog_post_meta’);
remove_action( ‘appthemes_advertise_content’, ‘cp_adbox_336x280’ );
remove_action( ‘appthemes_after_loop’, ‘cp_single_ad_banner’ );
// Replace them with own functionsadd_action( ‘appthemes_before_post_title’, ‘classipost_ad_loop_price’ );
add_action( ‘cp_action_after_ad_details’, ‘classipost_ad_single_price’, 10, 3 );
add_action( ‘appthemes_after_post_title’, ‘classipost_ad_loop_meta’ );
add_action( ‘appthemes_after_post_content’, ‘classipost_do_loop_stats’ );
add_action( ‘appthemes_after_blog_post_content’, ‘classipost_do_loop_stats’ );
add_action(‘appthemes_after_blog_post_title’, ‘classipost_blog_post_meta’);
add_action( ‘appthemes_before_post_content’, ‘cp_single_ad_banner’ );
add_action( ‘appthemes_advertise_content’, ‘classipost_adbox_728x90’ );}
/**
* Displays 728 x 90 ad box on single page.
* @since 3.3
*
* @return void
*/
function classipost_adbox_728x90() {
global $cp_options;if ( ! $cp_options->adcode_336x280_enable ) {
return;
}
?>
<div class=”shadowblock_out”>
<div class=”shadowblock px2″>
<div class=”ablock”>
<?php
if ( ! empty( $cp_options->adcode_336x280 ) ) {
echo stripslashes( $cp_options->adcode_336x280 );
} elseif ( $cp_options->adcode_336x280_url ) {
$img = html( ‘img’, array( ‘src’ => $cp_options->adcode_336x280_url, ‘border’ => ‘0’, ‘alt’ => ” ) );
echo html( ‘a’, array( ‘href’ => $cp_options->adcode_336x280_dest, ‘target’ => ‘_blank’ ), $img );
}
?>
</div>
</div>
</div>
<?php
}/**
* Displays 728 x 90 ad box on the home page under the slider.
* @since 3.3
*
* @return void
*/
function classipost_homepage_728x90() {
global $cp_options;if ( ! $cp_options->adcode_468x60_enable ) {
return;
}?>
<div class=”shadowblock_out”>
<div class=”shadowblock px2″>
<div class=”ablock”>
<?phpif ( ! empty( $cp_options->adcode_468x60 ) ) {
echo stripslashes( $cp_options->adcode_468x60 );
} else {
if ( ! $cp_options->adcode_468x60_url ) {
$img = html( ‘img’, array( ‘src’ => get_template_directory_uri() . ‘/images/468×60-banner.jpg’, ‘width’ => ‘468’, ‘height’ => ’60’, ‘border’ => ‘0’, ‘alt’ => ‘Premium WordPress Themes – AppThemes’ ) );
echo html( ‘a’, array( ‘href’ => ‘https://www.appthemes.com’, ‘target’ => ‘_blank’ ), $img );
} else {
$img = html( ‘img’, array( ‘src’ => $cp_options->adcode_468x60_url, ‘border’ => ‘0’, ‘alt’ => ” ) );
echo html( ‘a’, array( ‘href’ => $cp_options->adcode_468x60_dest, ‘target’ => ‘_blank’ ), $img );
}
}?>
</div>
</div>
</div>
<?php}
/**
* Adds the ad price field in the loop before the ad title.
* @since 3.1.3
*
* @return void
*/
function classipost_ad_loop_price() {
global $post;
$price = get_post_meta($post->ID, ‘cp_price’, true);
if ( $post->post_type == ‘page’ || $post->post_type == ‘post’ || empty($price) || $price == 0 || is_singular( APP_POST_TYPE ))
return;
?>
<div class=”price-wrap”>
<p class=”post-price”>
<?php cp_get_price( $post->ID, ‘cp_price’ ); ?>
</p>
</div>
<?php
}function classipost_ad_single_price( $form_fields, $post, $location = ‘list’) {
global $post;
$price = get_post_meta($post->ID, ‘cp_price’, true);
if ( $post->post_type == ‘page’ || $post->post_type == ‘post’ || empty($price) || $price == 0)
return;if ( is_singular( APP_POST_TYPE ) && $location == ‘list’ ) { ?>
<li id=”cp_price”><span><?php _e( ‘Price:’, APP_TD ); ?></span> <?php cp_get_price( $post->ID, ‘cp_price’ ); ?>
<?php
}
}/**
* Adds the ad meta in the loop after the ad title.
* @since 3.1
*
* @return void
*/
function classipost_ad_loop_meta() {
global $post, $cp_options;
if ( is_singular( APP_POST_TYPE ) )
return;
$classipost_meta = of_get_option(‘classipost_custom_meta’, of_get_default(‘classipost_custom_meta’ ));
$custom_meta = get_post_meta($post->ID, $classipost_meta, true);
$category_meta = get_the_term_list( $post->ID, APP_TAX_CAT, ”, ‘, ‘, ” );
$category_location = get_the_terms( $post->ID, APP_TAX_CAT);
if ($category_location && ! is_wp_error($category_location)) {
foreach ($category_location as $term){
$category_link = get_term_link($term, APP_TAX_CAT );
}
}
?>
<p class=”item-meta”>
<span class=”nowsp”><i class=”fa fa-folder-open”></i> <?php if ( $post->post_type == ‘post’ ) the_category(‘, ‘); else echo $category_meta; ?></span>
<?php $classipost_author = get_the_author_meta(‘ID’);
if ( is_user_online($classipost_author)) { ?>
<span class=”nowsp” rel=”tooltip” data-placement=”top” data-original-title=” <?php printf (__( ‘%s is Online’, ‘classipost’ ), get_the_author_meta(‘display_name’)) ?> “><i class=”fa fa-user icon-pulse” style=”color:dimgray”></i> <?php the_author_posts_link(); ?></span>
<?php } else { ?>
<span class=”nowsp” rel=”tooltip” data-placement=”top” data-original-title=” <?php _e( ‘Last Login:’, APP_TD ); ?> <?php echo appthemes_get_last_login( get_the_author_meta(‘ID’) ); ?> “><i class=”fa fa-user”></i> <?php the_author_posts_link(); ?></span>
<?php } ?>
<span class=”nowsp”><i class=”fa fa-map-marker”></i> ?<?php if ($classipost_meta == ‘cp_city’) echo $classipost_meta; else echo $classipost_meta.'[]’; ?>=<?php echo $custom_meta;?>&sa=search&refine_search=yes” title=”<?php echo $custom_meta; ?>”> <?php echo $custom_meta; ?> </span>
<span class=”nowsp”><i class=”fa fa-clock-o”></i> <?php echo appthemes_date_posted($post->post_date); ?></span>
<?php if ( $cp_options->ad_stats_all && current_theme_supports( ‘app-stats’ ) ) { ?>
<span class=”nowsp”><i class=”fa fa-signal”></i> <?php appthemes_stats_counter( $post->ID ); ?></span>
<?php } ?>
</p>
<?php
}// Post meta
function classipost_blog_post_meta() {
if ( is_page() ) return; // don’t do post-meta on pages
global $post;
?>
<p class=”post-meta”><span class=”nowsp”><i class=”fa fa-user fa-lg”></i> <?php the_author_posts_link(); ?></span> <span class=”nowsp”><i class=”fa fa-folder-open fa-lg”></i> <?php the_category(‘, ‘) ?></span> <span class=”nowsp”><i class=”fa fa-clock-o fa-lg”></i> <?php echo appthemes_date_posted( $post->post_date ); ?></span></p>
<?php
}function classipost_do_loop_stats() {
global $post, $cp_options;if (( is_singular(‘post’) ) && $cp_options->ad_stats_all && current_theme_supports( ‘app-stats’ )) {
?>
<p class=”stats”><i class=”fa fa-signal”></i>
<?php appthemes_stats_counter( $post->ID ); ?>
</p>
<?php
}
}// Get meta values of all ads, used mainly for top search location bar
function get_meta_values( $key = ”, $type = APP_POST_TYPE, $status = ‘publish’ ) {global $wpdb;
if( empty( $key ) )
return;$r = $wpdb->get_col( $wpdb->prepare( ”
SELECT DISTINCT pm.meta_value FROM {$wpdb->postmeta} pm
LEFT JOIN {$wpdb->posts} p ON p.ID = pm.post_id
WHERE pm.meta_key = ‘%s’
AND p.post_status = ‘%s’
AND p.post_type = ‘%s’
ORDER BY meta_value ASC
“, $key, $status, $type ) );return $r;
}// Update user online status
function update_online_users_status(){if(is_user_logged_in()){
// get the online users list
if(($logged_in_users = get_transient(‘users_online’)) === false) $logged_in_users = array();$current_user = wp_get_current_user();
$current_user = $current_user->ID;
$current_time = current_time(‘timestamp’);if(!isset($logged_in_users[$current_user]) || ($logged_in_users[$current_user] < ($current_time – (15 * 60)))){
$logged_in_users[$current_user] = $current_time;
set_transient(‘users_online’, $logged_in_users, 30 * 60);
}
}
}
add_action(‘wp’, ‘update_online_users_status’);function is_user_online($user_id) {
global $wpdb;
// get the online users list
$logged_in_users = get_transient(‘users_online’);// online, if (s)he is in the list and last activity was less than 15 minutes ago
return isset($logged_in_users[$user_id]) && ($logged_in_users[$user_id] > (current_time(‘timestamp’) – (15 * 60)));
}// Unregister the footer sidebar
function remove_footer_sidebar(){
unregister_sidebar( ‘sidebar_footer’ );
}
add_action( ‘widgets_init’, ‘remove_footer_sidebar’ );function classipost_register_sidebars() {
// Footer
$footer_columns = of_get_option(‘footer_columns’, of_get_default(‘footer_columns’ ));
register_sidebar( array(
‘name’ => __( ‘Footer’, APP_TD ),
‘id’ => ‘sidebar_footer’,
‘description’ => __( ‘This is your ClassiPress footer. You can have ANY number of widgets which will display in the footer from left to right.’, APP_TD ),
‘before_widget’ => ‘<div class=”footer-widget ‘ . $footer_columns . ‘ %2$s” id=”%1$s”>’,
‘after_widget’ => ‘</div><!– /footer-widget –>’,
‘before_title’ => ‘<h2 class=”dotted”>’,
‘after_title’ => ‘</h2>’,
) );
}
add_action( ‘widgets_init’, ‘classipost_register_sidebars’, 11 );//Create bootstrap badges for categories within sidebar
function classipost_cat_count($links) {
$links = str_replace(‘ (‘, ‘ <span class=”badge badge-primary”>’, $links);
$links = str_replace(‘)’, ‘</span>’, $links);
return $links;
}
add_filter(‘wp_list_categories’, ‘classipost_cat_count’);//Stick featured ads to the top on category and search pages
class StickyAds {
public function __construct() {
add_filter(‘posts_orderby’, array($this, ‘_hookPostsOrderBy’), 11, 2);
}public function _hookPostsOrderBy($orderBy, $query) {
global $wpdb;
if ( is_tax(‘ad_cat’) || is_search() && !$query->query_vars[‘ignore_sticky_posts’]) {
$stickyPosts = get_option(‘sticky_posts’);
if (is_array($stickyPosts) && !empty($stickyPosts)) {
$sticky = ‘(‘ . $wpdb->posts . ‘.ID IN (‘ .
implode(‘,’, $stickyPosts) . ‘)) DESC’;
$orderBy= empty($orderBy) ? $sticky : $sticky . ‘,’ . $orderBy;add_filter(
‘pre_option_sticky_posts’, array($this, ‘_hookOptionStickyPosts’)
);
}
}
return $orderBy;
}public function _hookOptionStickyPosts($option) {
remove_filter(‘pre_option_sticky_posts’, array($this, ‘_hookOptionStickyPosts’)
);
return array();
}
}$stickyads = new StickyAds();
// End sticky adsfunction bootstrap_tabs_js() {
if (is_home() || is_front_page()) {
$active_tab = of_get_option(‘home_tab’, of_get_default(‘home_tab’ ));
} else {
$active_tab = 0;
}
?>
<script>
// Save current tab or pill active state in the local storage
jQuery(document).ready(function ($) {
var json, tabsState;
$(‘a[data-toggle=”pill”], a[data-toggle=”tab”]’).on(‘shown.bs.tab’, function(e) {
var href, json, parentId, tabsState;tabsState = localStorage.getItem(“tabs-state”);
json = JSON.parse(tabsState || “{}”);
parentId = $(e.target).parents(“ul.nav.nav-pills, ul.nav.nav-tabs”).attr(“id”);
href = $(e.target).attr(‘href’);
json[parentId] = href;return localStorage.setItem(“tabs-state”, JSON.stringify(json));
});tabsState = localStorage.getItem(“tabs-state”);
json = JSON.parse(tabsState || “{}”);$.each(json, function(containerId, href) {
return $(‘#’ + containerId + ‘ a[href=”‘ + href + ‘”]’).tab(‘show’);
});$(“ul.nav.nav-pills, ul.nav.nav-tabs”).each(function() {
var $this = $(this);
if (!json[$this.attr(“id”)]) {
return $this.find(“a[data-toggle=tab]:eq(<?php echo $active_tab; ?>), a[data-toggle=pill]:eq(<?php echo $active_tab; ?>)”).tab(“show”);
}$(‘.popular-tab.active, .random-tab.active’).trigger(“click”);
});
$(document).on(“shown.bs.collapse”, “.panel-collapse”, function (e) {
$(‘.popular-tab, .random-tab’).trigger(“click”);
});});
// End pill or tab state
/* Bootstrap Accordion.
Turn the tabs into accordions on mobile devices.
Scroll to top and animate the accordion.
*/
jQuery(document).ready(function ($) {
$(“[id^=tabby-]”).tabCollapse({
tabsClass: ‘hidden-ms hidden-xs’,
accordionClass: ‘visible-ms visible-xs’
});$(“[id$=’-accordion’]”).on(‘shown.bs.collapse’, function () {
var panel = $(this).find(‘.in’);
$(‘html, body’).animate({
scrollTop: panel.offset().top -57 }, 500);
});
});
// End Accordion<?php if ( is_single() && ! of_get_option(‘remove_maps’, of_get_default(‘remove_maps’ )) == ‘1’ ) { ?>
// Initialize the Google map upon click on tabs
jQuery(document).ready(function($) {
var clicked = false;if( $(“[id^=location]”).is(‘:visible’) ) {
map_init();
} else {
jQuery(‘a[href^=”#location”]’).click( function() {
if( !clicked ) {
map_init();
clicked = true;
}
});
}
});jQuery(document).on(“shown.bs.collapse shown.bs.tab”, “.panel-collapse, a[data-toggle=’tab’]”, function (e) {
setTimeout(function(){
google.maps.event.trigger(map,’resize’);
}, 500);
});
<?php } ?></script>
<?php
}add_action( ‘wp_footer’, ‘bootstrap_tabs_js’);
//Begin infinite scroll
function infinitescroll_js() {
if (of_get_option(‘infinitescroll’, of_get_default(‘infinitescroll’ )) == ‘infinite’) {
?>
<script>
jQuery(document).ready(function($) {// infinite scroll
$(“.loop-items”).infinitescroll({
navSelector : “.paging”,
// selector for the paged navigation (it will be hidden)
nextSelector : “a.page-numbers”,
// selector for the NEXT link (to page 2)
itemSelector : “.wrap-item”,
// selector for all items you’ll retrieve
contentSelector : “.loop-items”,loading: {
img: “<?php echo get_stylesheet_directory_uri(); ?>/images/ajax-loader.gif”,
msgText: “<?php _e( ‘Loading next ads…’, ‘classipost’ ); ?>”,
finishedMsg: “<?php _e( ‘This was the last ad from current category.’, ‘classipost’ ); ?>”
}
});});
</script>
<?php
}
}
add_action( ‘wp_footer’, ‘infinitescroll_js’,100 );// Available colors top menu
if ( class_exists(‘WPUserStylesheetSwitcher’) ) :
function stylesheet_switch_menu ( $items, $args ) {
if ( $args->theme_location == ‘Top’ ) {
global $wpUserStylesheetSwitcher;
$items = $wpUserStylesheetSwitcher->show_wp_user_stylesheet_switcher(array(‘list_title’=>’Colors: ‘, ‘show_list_title’=>’true’, ‘list_type’=>’icon’));
}
return $items;
}
add_filter( ‘wp_nav_menu_items’, ‘stylesheet_switch_menu’, 10, 2 );
endif;// Enable the TinyMCE kitchen sink
function enable_more_buttons($buttons) {
$buttons[] = ‘fontselect’;
$buttons[] = ‘fontsizeselect’;
return $buttons;
}
add_filter(‘mce_buttons_2’, ‘enable_more_buttons’);function add_search_filter_before_page_loop() {
do_shortcode(“[searchandfilter id=’3726′ action=’filter_next_query’]”);
}add_action( ‘appthemes_before_blog_loop’, ‘add_search_filter_before_page_loop’ );
-
AuthorSearch Results
-
Search Results
-
Topic: Uncode VC results
Hi,
I’m using the theme Uncode. I have been trying to use the extension for VC so my results display with masonry / isotope. However, I cant find how to insert the data source. I found this thread:
https://support.searchandfilter.com/forums/topic/style-results-to-fit-theme-vc/
But cant see what the solution was since it was marked private. Please advice.
Thanks!
Susana
Topic: fail on submit No refresh
Hi. Apart from the previous question ….
I’m having problems with the plugin. I do not know why since we changed styles. The plugin form only looks the first time.
In other words: I select a filter and click on “submit”. It does it correctly. But if I re-filter and re-click on “submit” no longer searches. I think the problem is that it does not refresh the page.
Any idea why?Thank you!