自定义函数实现wordpress面包屑导航
要自定义WordPress面包屑导航,你可以创建一个自定义函数并将其添加到你的主题文件中(通常是functions.php)。以下是一个示例函数,用于生成WordPress面包屑导航:
function custom_breadcrumbs() {
// 面包屑导航的分隔符
$delimiter = ' » ';
// 获取当前页面的信息
$home = '首页'; // 首页的文本
$before = '<span class="current">'; // 非链接文本之前
$after = '</span>'; // 非链接文本之后
if (!is_home() && !is_front_page() || is_paged()) {
echo '<div id="breadcrumbs">';
echo '<a href="' . get_option('home') . '">' . $home . '</a> ' . $delimiter . ' ';
// 如果是分类存档页面
if (is_category()) {
global $wp_query;
$cat_obj = $wp_query>get_queried_object();
$thisCat = $cat_obj>term_id;
$thisCat = get_category($thisCat);
$parentCat = get_category($thisCat>parent);
if ($thisCat>parent != 0) {
echo(get_category_parents($parentCat, TRUE, ' ' . $delimiter . ' '));
}
echo $before . 'Archive by category "' . single_cat_title('', false) . '"' . $after;
// 如果是自定义分类法存档页面
} elseif (is_tax()) {
global $wp_query;
$term = $wp_query>get_queried_object();
$taxonomy = $term>taxonomy;
$parent_term = get_term($term>parent, $taxonomy);
if ($term>parent != 0) {
echo(get_term_parents($parent_term>term_id, $taxonomy, TRUE, ' ' . $delimiter . ' '));
}
echo $before . esc_html($term>name) . $after;
// 如果是搜索结果页面
} elseif (is_search()) {
echo $before . 'Search results for "' . get_search_query() . '"' . $after;
// 如果是单独页面
} elseif (is_single()) {
$category = get_the_category();
if ($category) {
$catID = $category[0]>cat_ID;
echo(get_category_parents($catID, TRUE, ' ' . $delimiter . ' '));
}
echo '<a href="' . get_permalink() . '">' . get_the_title() . '</a>';
// 如果是页面
} elseif (is_page()) {
if ($post>post_parent) {
$anc = get_post_ancestors($post>ID);
$title = get_the_title();
foreach ($anc as $ancestor) {
$output = '<a href="' . get_permalink($ancestor) . '" title="' . get_the_title($ancestor) . '">' . get_the_title($ancestor) . '</a>' . $delimiter . $output;
}
echo $output;
echo $before . $title . $after;
} else {
echo $before . get_the_title() . $after;
}
// 如果是标签存档页面
} elseif (is_tag()) {
echo $before . 'Posts tagged "' . single_tag_title('', false) . '"' . $after;
// 如果是作者存档页面
} elseif (is_author()) {
global $author;
$userdata = get_userdata($author);
echo $before . 'Articles posted by ' . $userdata>display_name . $after;
// 如果是404错误页面
} elseif (is_404()) {
echo $before . '404 Error' . $after;
}
// 分页导航
if (get_query_var('paged')) {
echo ' (' . __('Page') . ' ' . get_query_var('paged') . ')';
}
echo '</div>';
}
}
要在你的主题中使用这个面包屑导航函数,你可以在你的主题模板文件中的适当位置(通常是header.php)调用它,如下所示:
<?php custom_breadcrumbs(); ?>
这将在你的WordPress网站上生成一个基本的面包屑导航。你可以根据你的需求自定义面包屑导航的样式和外观,以适应你的主题。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
仍然有问题? 我们要如何帮助您?