Forum Replies Created
-
AuthorPosts
-
Ernest Marcinko
KeymasterYou 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!
October 10, 2024 at 10:52 am in reply to: Title and excerpt cut off in Ajax Search Horizontal View #51379Ernest Marcinko
KeymasterYou cannot access this content.
Ernest Marcinko
KeymasterSure!
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.
Ernest Marcinko
KeymasterYou cannot access this content.
Ernest Marcinko
KeymasterHi,
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.
Ernest Marcinko
KeymasterHi,
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.
Ernest Marcinko
KeymasterHi,
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 indexThe 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); }Ernest Marcinko
KeymasterYou cannot access this content.
Ernest Marcinko
KeymasterYou cannot access this content.
Ernest Marcinko
KeymasterHi 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.Ernest Marcinko
KeymasterYou cannot access this content.
Ernest Marcinko
KeymasterHi,
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.
Ernest Marcinko
KeymasterYou cannot access this content.
Ernest Marcinko
KeymasterYou cannot access this content.
Ernest Marcinko
KeymasterYou cannot access this content.
-
AuthorPosts