我在Google上读到一篇文章,说为了好的SEO,URL中的slug的大小最好限制在5个字以内。
当我使用WordPress时,链接会自动分配给文章标题。要用5个词重做所有链接,我必须花几个月的时间编辑博客上的所有链接。
有没有可能自动做到这一点?有一些函数或代码。我找到了这个代码,并将其添加到我的主题的函数页面,没有结果。
查看代码:
function pm_limit_slugs_length($uri) {
$max_words = 5; // If any part of URI contains more than 5 words, the slug will be limited to first 5 words
$new_title = '';
$slugs = explode('/', $uri);
for($i=0, $count = count($slugs); $i < $count; $i++) {
$slug = $slugs[$i];
$words = explode('-', $slug);
$new_title .= "/";
if(count($words) > $max_words) {
$new_title .= implode("-", array_slice($words, 0, $max_words));
} else {
$new_title .= $slug;
}
}
// Remove trailing slashes
$new_title = trim($new_title, "/");
return $new_title;
}
add_filter('permalink_manager_filter_default_post_uri', 'pm_limit_slugs_length', 99);
add_filter('permalink_manager_filter_default_term_uri', 'pm_limit_slugs_length', 99);
我在这里找到了代码:https://permalinkmanager.pro/docs/filters-hooks/how-to-limit-the-number-of-words-in-wordpress-permalinks/
我如何使用它来限制WordPress的slug大小为5个字?
1条答案
按热度按时间z31licg01#
首先,说明是否值得这样做:
影响SEO的因素有100多个。你不应该把所有的都实现,而且很多都不会有很大的影响。在我看来,这样做很可能不会有任何显着的效果,它只会让事情变得更加困难。
更重要的是,要对SEO产生任何影响 *,slug应该包括您的关键字 *,如果您以编程方式更改它们,则没有办法确保slug将包括关键字,因此您甚至可能弊大于利。
顺便说一句,几个版本前,WP被改变来实现这个对鼻涕虫的限制,然后很快又变回来了。这会向我暗示它可能不是很有用或实用。
但是,如果您仍然想这样做:
限制新slugs中的单词
你的问题中的代码来自这篇文章,对吗?How to limit the number of words in WordPress permalinks or slugs?
第一个例子-你使用的-是与他们的插件一起使用。下一个例子(包括在下面)将在没有插件的情况下在Wordpress中工作。这可以添加到你的functions.php中。
更新:我已经将Automatically Remove Short Words From URL的代码合并到这个函数中,以删除少于3个字符的短单词,请参阅下面的更新函数。
请注意,这只对 new slug有效,您仍然需要重新生成旧的slug,或者编写代码来遍历现有的slug以更新它们。
更新现有slug
你可以将这个函数添加到你的functions.php来获取你所有的slug,调用上面的函数来生成一个新的slug,然后在DB中更新它:
***请注意,上面的代码是我自己的,未经测试,所以请确保您首先在测试环境中尝试它。
如何使用此功能
要更新所有现有的slugs,您只需要按需调用此函数一次,而不是自动调用(否则它将在每次functions.php加载时更新slugs)。您可以在WP外部的外部脚本中创建一个单独的独立页面,如下所示: