Canonical Link to the Original Source for Republished Posts
Points the canonical tag of a post to the URL in its "original_url" custom field, for articles first published elsewhere, so the original keeps the search credit.
Opens WPIDE on
Code
// Custom field holding the original URL.
$wpide_original_field = 'original_url';
add_filter( 'get_canonical_url', function ( $url, $post ) use ( $wpide_original_field ) {
$source = esc_url_raw( (string) get_post_meta( $post->ID, $wpide_original_field, true ) );
return wp_http_validate_url( $source ) ? $source : $url;
}, 10, 2 );
Notes
Works with WordPress's own canonical tag. SEO plugins replace it, so use their canonical setting instead when one is active.
How to add this snippet
- Install WPIDE on your WordPress site (it is free) and open Code Snippets.
- Use snippet above adds it from the library in one click. Or copy the code into a new snippet with the same code type.
- It is added inactive: review the code and settings, then switch it on.