php - 搜索结果中的 WordPress 面包屑

标签 php wordpress breadcrumbs

在 WordPress 中,我目前使用的是 Yoast's SEO Plugin显示breadcrumbs对于我的页面和帖子,在访问特定页面时工作正常。

这是我用来在我的 WordPress 模板中显示面包屑的函数:

<?php if ( function_exists('yoast_breadcrumb') ) {
    yoast_breadcrumb('<p id="breadcrumbs">','</p>');
} ?>

例如,当浏览到 关于我们 的子项 Team Members 时,我得到:

Home > About Us > Team Members

但是我希望能够在搜索结果循环中显示相同的面包屑(针对各个页面和帖子)。

目前搜索Members时显示的是:

Your Search Results:

Team Members 
Home > Search > Members

Members Area 
Home > Search > Members

但我不想要搜索结果页面的面包屑,我想要它们作为搜索关键字的结果显示的各个页面和帖子。

例如,假设我再次搜索 Members 我想显示以下内容:

Your Search Results:

Team Members 
Home > About Us > Team Members

Members Area 
Home > Members Area

我不介意它是否与 SEO 插件集成,但到目前为止,这是我发现在 WordPress 中显示面包屑的最佳解决方案!

如果有人需要它,这里是我的 search.php 文件:http://pastebin.com/0qjb2954

最佳答案

试试这个。这是我自己的工作片段,它在搜索循环中显示面包屑。

/*Begin Loop */
<?php 
echo '<div class="b-search_result_list__item_breadcrumbs breadcrumbs">';

$current_type = get_post_type();
if ($current_type == 'page') {

    $parents = get_post_ancestors(get_the_ID());
    if($parents){

        for($i=count($parents)-1;$i>=0;$i--){
            echo '<span typeof="v:Breadcrumb">';
            echo '<a rel="v:url" property="v:title" title="'.get_the_title($parents[$i]).'" href="'.get_permalink($parents[$i]).'">'.get_the_title($parents[$i]).'</a>';
            echo '</span>';
        }
    }else{
        echo '<span typeof="v:Breadcrumb">';
        echo '<a rel="v:url" property="v:title" title="'.get_bloginfo('name').'" href="'.get_bloginfo('url').'">'.get_bloginfo('name').'</a>';
        echo '</span>';
    }
    echo '<span typeof="v:Breadcrumb">';
    echo '<span property="v:title">'.get_the_title().'</span>';
    echo '</span>';
}else{
    $current_obj = get_post_type_object($current_type);

        echo '<span typeof="v:Breadcrumb">';
        echo '<a rel="v:url" property="v:title" title="'.get_bloginfo('name').'" href="'.get_bloginfo('url').'">'.get_bloginfo('name').'</a>';
        echo '</span>';
        echo '<span typeof="v:Breadcrumb">';
        echo '<a rel="v:url" property="v:title" title="'.$current_obj->labels->name.'" href="'.get_post_type_archive_link( $current_type ).'">'.$current_obj->labels->name.'</a>';
        echo '</span>';

        $current_taxonomies = get_object_taxonomies($current_type);

        if($current_taxonomies){
            $current_terms = get_the_terms(get_the_ID(), $current_taxonomies[0]);

            if($current_terms){
                $current_term = array_shift($current_terms);

                echo '<span typeof="v:Breadcrumb">';
                    echo '<a rel="v:url" property="v:title" title="'.$current_term->name.'" href="'.get_term_link($current_term).'">'.$current_term->name.'</a>';
                echo '</span>';

                /*
                var_dump($current_obj->labels->name); // Archive name
                var_dump(get_post_type_archive_link( $current_type )); // Archive link
                var_dump($current_term->name);  // Term name
                var_dump(get_term_link($current_term)); // Term link
                var_dump(get_permalink()); // Post link 
                */
            }
        }
        echo '<span typeof="v:Breadcrumb">';
        echo '<span property="v:title">'.get_the_title().'</span>';
        echo '</span>';

}    

echo '</div>';
?>
/*End Loop*/

关于php - 搜索结果中的 WordPress 面包屑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26302801/

相关文章:

mysql - 无法在 Microsoft Azure 中为 Wordpress 博客创建新的 MySQL 数据库

netbeans - 如何在 Netbeans 7.3 中调出 "Bradcrumbs"导航栏

ruby-on-rails - RESTful rails 应用程序的简单面包屑

php - FPDF - 绘制一条以宽度为中心的线

php - 复选框中的任意值会导致在 PDO 上执行 SQL 语句变得困难

javascript - 替换 php 代码中的 javascript 变量,其中 php 代码位于 javascript 代码块内

html - 在 Opencart 1.5.6.4 中显示完整的面包屑

javascript - 服务器端的 jQuery 多数据解码

css - 如何更改 BuddyBoss 主题中链接的 CSS

php - 脚本头/信号 11 过早结束