This website uses cookies to personalize your experience. By using this website you agree to our cookie policy.

Forum Replies Created

Viewing 15 posts - 1,876 through 1,890 (of 18,422 total)
  • Author
    Posts
  • in reply to: Plurals on website search #51381
    Ernest MarcinkoErnest Marcinko
    Keymaster

    You are very welcome 🙂

    If you don’t mind, I will close this topic soon and mark it as resolved, feel free to open another one if you have other questions or issues.

    If you like the plugin and have not rated already, feel free to leave a rating on your codecanyon downloads page and on the wordpress plugin repository, it’s greatly appreciated.

    To help us improving the plugin, you can take this super short survey, we appreciate your feedback!

    in reply to: Title and excerpt cut off in Ajax Search Horizontal View #51379
    Ernest MarcinkoErnest Marcinko
    Keymaster

    You cannot access this content.

    in reply to: Plurals on website search #51372
    Ernest MarcinkoErnest Marcinko
    Keymaster

    Sure!

    I have logged in to check, and the index table engine was not enabled on the search bar, so I enabled it.

    Now you should see kind of similar number of results – not exactly the same as due to fuzzy matches, but the number should be much closer.

    in reply to: Post results #51370
    Ernest MarcinkoErnest Marcinko
    Keymaster

    You cannot access this content.

    in reply to: Search by Selecting Country THEN State… #51368
    Ernest MarcinkoErnest Marcinko
    Keymaster

    Hi,

    I’m afraid that is not possible to do. The plugin can only output static field values for performance reasons (for now). This is however going to be implemented in the future, so it’s going to be possible, but I don’t know the timeline yet, as it’s a major feature upgrade.

    in reply to: Synonyms & Taxonomies #51367
    Ernest MarcinkoErnest Marcinko
    Keymaster

    Hi,

    I’m afraid synonyms can’t be extended to the taxonomy term results, they only work for CPTs – as the they are applied to the index table and that only applies to CPT results. I usuall recommend a custom code or a modification where possible, but this is not possible to solve via the index table due to object ID conflicts and missing fields.

    The only way around it is to add the additional keywords (synonyms) to term metadata and then enable search for the term meta table.

    in reply to: Plurals on website search #51366
    Ernest MarcinkoErnest Marcinko
    Keymaster

    Hi,

    It depends on the case – but if you only expect a few of these, then using the synonyms feature is the best option.

    If you want a semi-automated solution for english language, then it’s also possible, but requires a bit of custom code to be added.
    – Try adding the custom code from below via the Code Snippets plugin or to the functions.php file in your theme/child theme directory – make sure to have a full server back-up first for safety. For more details you can check the safe coding guidelines.
    – Then make sure to use the index table engine
    – After adding the code re-create the index

    The snippet will hook into the index process, will check all words and add plurals and singulars wherever it finds them in the text.

    
    class Inflect
    {
        static $plural = array(
            '/(quiz)$/i'               => "$1zes",
            '/^(ox)$/i'                => "$1en",
            '/([m|l])ouse$/i'          => "$1ice",
            '/(matr|vert|ind)ix|ex$/i' => "$1ices",
            '/(x|ch|ss|sh)$/i'         => "$1es",
            '/([^aeiouy]|qu)y$/i'      => "$1ies",
            '/(hive)$/i'               => "$1s",
            '/(?:([^f])fe|([lr])f)$/i' => "$1$2ves",
            '/(shea|lea|loa|thie)f$/i' => "$1ves",
            '/sis$/i'                  => "ses",
            '/([ti])um$/i'             => "$1a",
            '/(tomat|potat|ech|her|vet)o$/i'=> "$1oes",
            '/(bu)s$/i'                => "$1ses",
            '/(alias)$/i'              => "$1es",
            '/(octop)us$/i'            => "$1i",
            '/(ax|test)is$/i'          => "$1es",
            '/(us)$/i'                 => "$1es",
            '/s$/i'                    => "s",
            '/$/'                      => "s"
        );
        
        static $singular = array(
            '/(quiz)zes$/i'             => "$1",
            '/(matr)ices$/i'            => "$1ix",
            '/(vert|ind)ices$/i'        => "$1ex",
            '/^(ox)en$/i'               => "$1",
            '/(alias)es$/i'             => "$1",
            '/(octop|vir)i$/i'          => "$1us",
            '/(cris|ax|test)es$/i'      => "$1is",
            '/(shoe)s$/i'               => "$1",
            '/(o)es$/i'                 => "$1",
            '/(bus)es$/i'               => "$1",
            '/([m|l])ice$/i'            => "$1ouse",
            '/(x|ch|ss|sh)es$/i'        => "$1",
            '/(m)ovies$/i'              => "$1ovie",
            '/(s)eries$/i'              => "$1eries",
            '/([^aeiouy]|qu)ies$/i'     => "$1y",
            '/([lr])ves$/i'             => "$1f",
            '/(tive)s$/i'               => "$1",
            '/(hive)s$/i'               => "$1",
            '/(li|wi|kni)ves$/i'        => "$1fe",
            '/(shea|loa|lea|thie)ves$/i'=> "$1f",
            '/(^analy)ses$/i'           => "$1sis",
            '/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i'  => "$1$2sis",        
            '/([ti])a$/i'               => "$1um",
            '/(n)ews$/i'                => "$1ews",
            '/(h|bl)ouses$/i'           => "$1ouse",
            '/(corpse)s$/i'             => "$1",
            '/(us)es$/i'                => "$1",
            '/s$/i'                     => ""
        );
        
        static $irregular = array(
            'move'   => 'moves',
            'foot'   => 'feet',
            'goose'  => 'geese',
            'sex'    => 'sexes',
            'child'  => 'children',
            'man'    => 'men',
            'tooth'  => 'teeth',
            'person' => 'people'
        );
        
        static $uncountable = array( 
            'sheep', 
            'fish',
            'deer',
            'series',
            'species',
            'money',
            'rice',
            'information',
            'equipment'
        );
        
        public static function pluralize( $string ) 
        {
            // save some time in the case that singular and plural are the same
            if ( in_array( strtolower( $string ), self::$uncountable ) )
                return $string;
                
        
            // check for irregular singular forms
            foreach ( self::$irregular as $pattern => $result )
            {
                $pattern = '/' . $pattern . '$/i';
                
                if ( preg_match( $pattern, $string ) )
                    return preg_replace( $pattern, $result, $string);
            }
            
            // check for matches using regular expressions
            foreach ( self::$plural as $pattern => $result )
            {
                if ( preg_match( $pattern, $string ) )
                    return preg_replace( $pattern, $result, $string );
            }
            
            return $string;
        }
        
        public static function singularize( $string )
        {
            // save some time in the case that singular and plural are the same
            if ( in_array( strtolower( $string ), self::$uncountable ) )
                return $string;
    
            // check for irregular plural forms
            foreach ( self::$irregular as $result => $pattern )
            {
                $pattern = '/' . $pattern . '$/i';
                
                if ( preg_match( $pattern, $string ) )
                    return preg_replace( $pattern, $result, $string);
            }
            
            // check for matches using regular expressions
            foreach ( self::$singular as $pattern => $result )
            {
                if ( preg_match( $pattern, $string ) )
                    return preg_replace( $pattern, $result, $string );
            }
            
            return $string;
        }
        
        public static function pluralize_if($count, $string)
        {
            if ($count == 1)
                return "1 $string";
            else
                return $count . " " . self::pluralize($string);
        }
    }
    
    add_filter( 'asp_indexing_string_post_process', 'asp_index_add_singular_plural', 10, 1 );
    function asp_index_add_singular_plural($s) {
        $final = array();
    	$words = explode(' ', $s);
    	
        foreach ($words as $word) {
            $singular = Inflect::singularize($word);
            $plural = Inflect::pluralize($word);
    
            $final[] = $word;
    
            if ($singular != $word)
                $final[] = $singular;
    
            if ($plural != $word)
                $final[] = $plural;
        }
    	
        return implode(' ', $final);
    }
    
    in reply to: Post results #51365
    Ernest MarcinkoErnest Marcinko
    Keymaster

    You cannot access this content.

    in reply to: Post results #51358
    Ernest MarcinkoErnest Marcinko
    Keymaster

    You cannot access this content.

    in reply to: Slow Search Queries with Ninja Forms Activated #51349
    Ernest MarcinkoErnest Marcinko
    Keymaster

    Hi Jesper,

    I’m not aware of any conflicts. Usually when there is a delay, that means there is an additional task running with the request, stuff like update checks or some maintenance related code. I don’t think Ninja Forms is touching the search query itself, it might be just triggering something on accident or another plugin triggers something when Ninja Forms is active, it could be anything.

    I have a few tips to debug this:
    – First, temporarily deactivate all plugins except for search plugin and the Ninja Forms to see if the conflict persist. I suspect it may go away. In that case try reactivating them one-by one to see how it changes.
    – If it’s completely random, then the most likely cause is low memory. It’s super rare, but explains the problem. After a certain number of plugins active the PHP process could run out of memory and so it “slows” down to manage it, increasing the memory limit usually helps. You can do it on the server side or via wp-config.php if it’s allowed.
    I recommend starting from 1024M and if that solves the issue, then gradually going down.
    – If no luck with the memory, then there is still hope via enabling the custom ajax handler. That will try to bybass some unneccessary loading, and in many cases improves the performance greatly.

    in reply to: Post results #51348
    Ernest MarcinkoErnest Marcinko
    Keymaster

    You cannot access this content.

    in reply to: Short-code mobile icon only #51347
    Ernest MarcinkoErnest Marcinko
    Keymaster

    Hi,

    Have you tried on a mobile device or browser mobile user agent (developer tools)? Resizing the screen and reloading will very likely not work, as the user agent will still remain a “desktop” version.

    in reply to: Post results #51338
    Ernest MarcinkoErnest Marcinko
    Keymaster

    You cannot access this content.

    in reply to: Post results #51336
    Ernest MarcinkoErnest Marcinko
    Keymaster

    You cannot access this content.

    in reply to: Post results #51333
    Ernest MarcinkoErnest Marcinko
    Keymaster

    You cannot access this content.

Viewing 15 posts - 1,876 through 1,890 (of 18,422 total)