Products
GG网络技术分享 2025-03-18 16:12 0
几乎在所有的wordpress网站中,我们都可以看到面包屑导航的身影(如下图)。面包屑导航,可以很方便地让我们了解到我们在这个wordpress网站中所在的位置,而且,我们还可以通过点击面包屑导航中的链接,进入到对应的页面。可见面包屑导航不仅让wordpress网站更加便利,而且提升了wordpress网站的用户体验。
那么,我们怎样在wordpress网站模板中添加面包屑导航呢?请随我来,我们可以通过2种方式来实现。具体操作,可以观看我在本站发表的《wordpress网站模板开发中,怎样添加面包屑导航功能?》视频教程。
面包屑导航的视频教程
也就是说,我们可以在wordpress模板中,想要显示面包屑导航的地方,添加面包屑导航代码就可以了。一般情况下,需要面包屑导航的地方有:wordpress网站的分类页模板、文章页模板、单页面模板、tag标签页模板、搜索页模板、作者页模板等等。
wordpress网站分类页模板面包屑导航代码:
wordpress网站文章页模板面包屑导航代码:
wordpress网站单页面模板面包屑导航代码:
这种方式的缺点:需要在wordpress网站的每个需要面包屑导航的模板中添加面包屑导航代码,后期维护比较麻烦。
方法二:在wordpress模板中创建面包屑导航的函数。
为了更加方便地在wordpress网站模板中调用面包屑导航,我们可以给面包屑导航创建一个函数,然后,只需要用到面包屑导航的页面直接调用这个函数就可以了。因为面包屑导航会在wordpress网站的很多页面中使用,所以,我们在函数中要做不同页面的判断,根据不同的页面调用不同的面包屑导航。
在wordpress网站模板的functions.php文件中添加如下代码:
面包屑函数创建好了,就可以在wordpress网站模板中调用它,代码如下:
通过上面的2种方式,我们都可以为我们的wordpress网站模板添加面包屑导航的功能。当然,我们还可以通过wordpress的面包屑导航插件来实现,不过,这么简单的功能,没必要耗费系统资源来使用插件,纯代码更加有效。
如果还有什么疑问,欢迎在下面给我留言,我会尽快给你回复。谢谢参阅。
在使用WordPress博客程序搭建网站的时候,WordPress的分类存档是非常重要的页面,在网站树形结构中占据一席位置。但是默认情况下分类页面的URL地址中有一个 <strong class=\"red\">/category/</strong> 目录,这个目录不仅会影响用户体验还会影响网站整体的SEO效果(网站的目录层次越少越利于搜索引擎抓取,也越利于获取更好的排名)。所以为了网站的SEO效果,必须要去掉这个category二级目录,降低目录的深度。那么怎么去除wordpress自带的一层category目录呢?
登录你的Wordpress后台,打开 “设置 —》固定链接 —》” 页面。在 “可选” 设置项里的 “分类目录前缀” 里输入半角字符: “.” ,如下图所示,保存后即可去掉分类前缀category。
优点:设置简单,老少皆宜。适用于初建成的博客,或刚打算使用固定链接 /永久链接的博客。用不着修改代码,升级之时没有顾虑;用不着插件,不会增加运行负担。
缺点:原链接无法打开,出现404错误。被搜索引擎收录良好,或分类链接有较多外链链入的博客,可要万分小心了。不要因为操作简单、省时省力而损失了大量外链及权重。因为它并没有插件所支持的自动 301 跳转,且原地址仍可以访问。(例如:www.aszhi.com/seo/与www.aszhi.com/category/seo/都是可以访问并且内容完全一样)这会造成谷歌网站管理员工具里提到的,重复的标题。而且这种钻官方代码空子的方法难保会一直有效下去。
(1)使用 WP No Category Base 插件,在后台插件管理中搜索“WP No Category Base”(如下图所示),然后下载安装。此插件主要是为去除固定链接中分类链接里的category而开发出来的一款wordpress插件。
安装启用此插件后,对原来的分类地址做了301重定向跳转,对SEO优化有好处,把降权风险降到最低。
(2)使用 No category parents 插件,在后台插件管理中搜索“No category parents”,然后下载安装。此插件不仅能去掉分类链接的前缀category,还能去掉父分类parent-category。例如:将“/category/parent-category/my-category/”换成“/my-category/” 。
优点:安装简单,老少皆宜。无论是初建成的博客,还是正打算使用固定链接/永久链接的博客,还是被搜索引擎收录良好的博客。用不着修改代码,升级之时没有顾虑。使用301跳转,把原链接进行跳转。最大程度符合seo优化,防止搜索引擎降权,防止原链接打不开。
不足:插件或许会造成空间负担。这里不说是缺点,就是因为,造成的“空间负担”微乎其微,不应该是缺点。比较在意的就不用,无所谓推荐使用。
纯代码去掉WordPress分类目录链接中的category分类标志,也非常简单,只需要将以下代码放在 当前主题的模板函数文件functions.php 文件最后一个?>前面即可。
// 去掉链接中category分类标志
add_action( \'load-themes.php\', \'no_category_base_refresh_rules\');
add_action(\'created_category\', \'no_category_base_refresh_rules\');
add_action(\'edited_category\', \'no_category_base_refresh_rules\');
add_action(\'delete_category\', \'no_category_base_refresh_rules\');
function no_category_base_refresh_rules() {
global $wp_rewrite;
$wp_rewrite -> flush_rules();
}
// register_deactivation_hook(__FILE__, \'no_category_base_deactivate\');
// function no_category_base_deactivate() {
// remove_filter(\'category_rewrite_rules\', \'no_category_base_rewrite_rules\');
// // We dont want to insert our custom rules again
// no_category_base_refresh_rules();
// }
// Remove category base
add_action(\'init\', \'no_category_base_permastruct\');
function no_category_base_permastruct() {
global $wp_rewrite, $wp_version;
if (version_compare($wp_version, \'3.4\', \' extra_permastructs[\'category\'][0] = \'%category%\';
} else {
$wp_rewrite -> extra_permastructs[\'category\'][\'struct\'] = \'%category%\';
}
}
// Add our custom category rewrite rules
add_filter(\'category_rewrite_rules\', \'no_category_base_rewrite_rules\');
function no_category_base_rewrite_rules($category_rewrite) {
//var_dump($category_rewrite); // For Debugging
$category_rewrite = array();
$categories = get_categories(array(\'hide_empty\' => false));
foreach ($categories as $category) {
$category_nicename = $category -> slug;
if ($category -> parent == $category -> cat_ID)// recursive recursion
$category -> parent = 0;
elseif ($category -> parent != 0)
$category_nicename = get_category_parents($category -> parent, false, \'/\', true) . $category_nicename;
$category_rewrite[\'(\' . $category_nicename . \')/(?:feed/)?(feed|rdf|rss|rss2|atom)/?$\'] = \'index.php?category_name=$matches[1]&feed=$matches[2]\';
$category_rewrite[\'(\' . $category_nicename . \')/page/?([0-9]{1,})/?$\'] = \'index.php?category_name=$matches[1]&paged=$matches[2]\';
$category_rewrite[\'(\' . $category_nicename . \')/?$\'] = \'index.php?category_name=$matches[1]\';
}
// Redirect support from Old Category Base
global $wp_rewrite;
$old_category_base = get_option(\'category_base\') ? get_option(\'category_base\') : \'category\';
$old_category_base = trim($old_category_base, \'/\');
$category_rewrite[$old_category_base . \'/(.*)$\'] = \'index.php?category_redirect=$matches[1]\';
//var_dump($category_rewrite); // For Debugging
return $category_rewrite;
}
// Add \'category_redirect\' query variable
add_filter(\'query_vars\', \'no_category_base_query_vars\');
function no_category_base_query_vars($public_query_vars) {
$public_query_vars[] = \'category_redirect\';
return $public_query_vars;
}
// Redirect if \'category_redirect\' is set
add_filter(\'request\', \'no_category_base_request\');
function no_category_base_request($query_vars) {
//print_r($query_vars); // For Debugging
if (isset($query_vars[\'category_redirect\'])) {
$catlink = trailingslashit(get_option(\'home\')) . user_trailingslashit($query_vars[\'category_redirect\'], \'category\');
status_header(301);
header(\"Location: $catlink\");
exit();
}
return $query_vars;
}
优点:仅加入一段代码,性能影响忽略不计。适用于对代码稍熟悉的博客。
缺点:修改代码,博客主题升级还要修改。
Demand feedback