Jak dodać stronę do bułki tartej Yoast

9

Korzystam z Yoasts Wordpress SEO i skonfigurowałem moje bułki tartej. Problem polega na tym, że moja konfiguracja strony jest następująca.

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

Menu nawigacyjne przedstawia się następująco.

Home / Category / Page Title

Chcę, żeby to się tak pokazywało.

Home/ Blog / Category / Page Title

czy to możliwe?

Lucky Luke
źródło

Odpowiedzi:

27

Oto ogólna zasada tego, co musisz zrobić:

  1. Podłącz do filtrówwpseo_breadcrumb_links lub wp_seo_get_bc_ancestors API .
  2. Dodaj swojego bloga do $linkstablicy WordPress SEO Breadcrumb , używając array_splice.

Umieść to w swoim motywie 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;
}

Uwaga: może być konieczne zaktualizowanie kodu specyficznego dla Twojej witryny lub potrzeb, ale ogólny pomysł pozostaje taki sam.

rjb
źródło
Działa to doskonale, po zmianie moich warunków warunkowych, adresów URL i wartości tekstowych w celu dostosowania do moich potrzeb. Dzięki.
crdunst
Dziwne. Ten kod zastąpił „Kategoria” „Blog” zamiast dodawać go wcześniej.
Michael Rogers,
NAPRAWIONO: w moim przypadku wymagało „2, -3” zamiast „1, -2”, nie jestem pewien, dlaczego, ale działa w ten sposób.
Michael Rogers,
@rjb dzięki, bardzo pomocny kod! Czy wiesz, jak dodać stronę do szlaku zamiast ją usuwać?
Cray