วิธีเพิ่มหน้าลงใน breadcrumb ของ Yoast


9

ฉันใช้ Yoasts Wordpress SEO และฉันได้ตั้งค่า breadcrumb ของฉัน ปัญหาคือการตั้งค่าหน้าของฉันเป็นดังนี้

/
/about
/blog - On this page I query the posts and display them. The posts themselves have nothing before them in the URL.

เกล็ดขนมปังแสดงดังต่อไปนี้

Home / Category / Page Title

ฉันต้องการให้มันแสดงเช่นนี้

Home/ Blog / Category / Page Title

เป็นไปได้ไหม

คำตอบ:


27

นี่คือหลักการทั่วไปของสิ่งที่คุณต้องทำ:

  1. เบ็ดลงไปwpseo_breadcrumb_linksหรือwp_seo_get_bc_ancestors API ฟิลเตอร์
  2. เพิ่มของคุณบล็อกลงใน WordPress SEO Breadcrumb อาร์เรย์ใช้$linksarray_splice

วางสิ่งนี้ในธีมของคุณfunctions.php:

/**
 * Conditionally Override Yoast SEO Breadcrumb Trail
 * http://plugins.svn.wordpress.org/wordpress-seo/trunk/frontend/class-breadcrumbs.php
 * -----------------------------------------------------------------------------------
 */

add_filter( 'wpseo_breadcrumb_links', 'wpse_100012_override_yoast_breadcrumb_trail' );

function wpse_100012_override_yoast_breadcrumb_trail( $links ) {
    global $post;

    if ( is_home() || is_singular( 'post' ) || is_archive() ) {
        $breadcrumb[] = array(
            'url' => get_permalink( get_option( 'page_for_posts' ) ),
            'text' => 'Blog',
        );

        array_splice( $links, 1, -2, $breadcrumb );
    }

    return $links;
}

หมายเหตุ: คุณอาจต้องอัปเดตรหัสเฉพาะไซต์หรือความต้องการของคุณ แต่แนวคิดทั่วไปยังคงเหมือนเดิม


สิ่งนี้ทำงานได้อย่างสมบูรณ์หลังจากเปลี่ยนเงื่อนไข URL และข้อความของฉันเพื่อให้เหมาะกับความต้องการของฉัน ขอบคุณ
crdunst

แปลก. รหัสนี้แทนที่ 'หมวดหมู่' ด้วย 'บล็อก' แทนที่จะเพิ่มก่อน
Michael Rogers

การแก้ไข: ในกรณีของฉันมันต้องการ "2, -3" แทนที่จะเป็น "1, -2" ไม่แน่ใจว่าทำไม แต่มันใช้งานได้
Michael Rogers

@rjb ขอบคุณรหัสที่เป็นประโยชน์มาก! คุณรู้วิธีเพิ่มหน้าในเส้นทางแทนที่จะลบออกหรือไม่
Cray
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.