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.
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 .