it-swarm.com.de

füge den Beitrag als Canonical für die Anhangsseite WordPress hinzu

die Seite mit den Anhängen sollte kanonisch zum Hauptbeitrag hinzugefügt werden

auf der Anhangsseite (image.php), die ich derzeit habe (automatisch von All in One Seo Pack hinzugefügt):

<link rel="canonical" href="https://example.com/main-post/image-name" />

Und ich möchte es ändern, um auf den Beitrag zu verweisen (wo dieses Bild angehängt ist)

<link rel="canonical" href="https://example.com/main-post" />

Sie können All in One Seo Pack ignorieren, wenn dies schwierig zu ändern ist, und möglicherweise einfach eine Möglichkeit bereitstellen, das Kanonische zum Hauptbeitrag hinzuzufügen.

1
whitelord

Hier ist ein (ungetestetes) Beispiel, bei dem wir den kanonischen Link des angehängten Posts in das Header-Tag auf den Seiten des Anhangs einfügen:

add_action( 'wp_head', 'wpse_attachment_parent_canonical' );

function wpse_attachment_parent_canonical()
{
    // Only target attachment's pages
    if( ! is_attachment() )
        return;

    $object = get_queried_object();

    // Make sure we're dealing with a WP_Post object
    if ( ! is_a( $object, '\WP_Post' ) )
        return;

    // Only target attachments that are attached to posts
    if( 0 == $object->post_parent )
        return;

    // Output canonical link
    printf(
        '<link rel="canonical" href="%s" />' . PHP_EOL,
        esc_url( get_permalink( $object->post_parent ) )
    );
} 

Beachten Sie, dass der get_canonical_url-Filter hier nicht zum Anpassen der kanonischen URL verwendet werden kann, da er nur auf Objekte mit dem Veröffentlichungsstatus angewendet wird. Anhänge haben den Post-Status .

2
birgire