It doesn’t work properly in several languages
-
I liked it at first and even wanted to buy the pro version, but during testing I discovered some shortcomings. I have the WP Multilang plugin installed, and the site operates in several languages.
So the first problem I noticed is that linking only occurs in one language. Even though I add keywords in all languages, linking only occurs in the site’s primary language. There’s no linking in other languages. No matter what settings I’ve changed, it doesn’t help. Linking only occurs in the default language. This is incorrect.
The second problem is the lack of declensions. Case support needs to be added for languages that already have them. This will ensure that keywords are declensed according to case. Since some languages, such as Russian, have paji, linking doesn’t occur when adding keywords and having cases. For example, the word “Стол” has the cases “Стола,” “Столом,” and “Столах.” If you add the first one, and the text contains other cases, there’s no interlinking. We need a good linguistic framework, with better support for Russian and other languages with declensional cases. Thai and Hindi also don’t link to each other. You could create a custom solution using WordPress functions; for example, add a noun declension function to your theme’s functions.php, but this doesn’t work well. This needs to be done at the plugin level.
In light of the above, I suggest:
- Add support for the WP Multilang plugin.
- Use morphological libraries and synonyms. For Russian, you can add a solution using the Yandex Dictionary API. Or a solution with a local declensional database. I can also suggest a solution using the phpMorphy library. For Russian, you can use a simplified solution like this:
// The simplest option is to add the main cases.
add_filter('ilj_link_keywords', 'add_basic_russian_cases');
function add_basic_russian_cases($keywords) {
$extended_keywords = array();
foreach ($keywords as $keyword) {
$keyword = mb_strtolower(trim($keyword), 'UTF-8');
// Add the original word
$extended_keywords[] = $keyword;
// Only for Russian one-word words
if (preg_match('/^[а-яё]+$/iu', $keyword) && count(explode(' ', $keyword)) === 1) {
// Simple suffixes for basic cases
$suffixes = array('', 'а', 'у', 'ом', 'е', 'ы', 'и', 'ой', 'ю', 'ям', 'ями', 'ях');
foreach ($suffixes as $suffix) {
$extended_keywords[] = $keyword . $suffix;
}
}
}
return array_unique(array_filter($extended_keywords));
}I’d be happy to see this in future updates.
PS: I’d also recommend adding smart linking, for example, via a personal OpenAI or DeepSeek key, so that the artificial intelligence can analyze keywords in a post, suggest cross-linking, and then automatically cross-link according to the keywords in the text.
You must be logged in to reply to this topic.