Enter your own canonical URL in WordPress Post

We use 1,000 websites, most of which are designed for specific sporting events. Currently, our authors write everything for them specifically for unique content.

However, we have 2 main sites that cover all events in their verticals; and we would like to start syndication of content for mini-sites from these main sites.

In order to maintain best practices in the eyes of Google, we will need to indicate the source of the article via rel = canonical tag - however, our current AIOSEO (all-in-one) plugin does not support indicating canonical tags on mail or page.

Is there any way to create such a function?

+6
source share
2 answers

can you use this code:

function rel_canonical() { if ( !is_singular() ) return; global $wp_the_query; if ( !$id = $wp_the_query->get_queried_object_id() ) return; $link = get_permalink( $id ); echo "<link rel='canonical' href='$link' />\n"; } // A copy of rel_canonical but to allow an override on a custom tag function rel_canonical_with_custom_tag_override() { if( !is_singular() ) return; global $wp_the_query; if( !$id = $wp_the_query->get_queried_object_id() ) return; // check whether the current post has content in the "canonical_url" custom field $canonical_url = get_post_meta( $id, 'canonical_url', true ); if( '' != $canonical_url ) { // trailing slash functions copied from http://core.trac.wordpress.org/attachment/ticket/18660/canonical.6.patch $link = user_trailingslashit( trailingslashit( $canonical_url ) ); } else { $link = get_permalink( $id ); } echo "<link rel='canonical' href='" . esc_url( $link ) . "' />\n"; } // remove the default WordPress canonical URL function if( function_exists( 'rel_canonical' ) ) { remove_action( 'wp_head', 'rel_canonical' ); } // replace the default WordPress canonical URL function with your own add_action( 'wp_head', 'rel_canonical_with_custom_tag_override' ); 
+6
source

We can also add this for meta keywords, meta descriptions and meta headers.

 // function to insert All-in-One SEO Pack keywords function keyword_insert() { global $post; // VERY important! // Retrieve keyword meta data from the SEO Pack $seokeywords = stripslashes(get_post_meta($post->ID, '_aioseop_keywords', true)); // Default keywords in case none are specified for the page if (empty($seokeywords)) $seokeywords = "Homestar Runner, Strong Bad, The Cheat"; // Output the html code $seokeyword_block = "<meta name=\"keywords\" content=\"".$seokeywords."\"/>\n"; echo $seokeyword_block; } // function to insert All-in-One SEO Pack description function description_insert() { global $post; // VERY important! // Retrieve description meta data from the SEO Pack $seodesc = stripslashes(get_post_meta($post->ID, '_aioseop_description', true)); // Default description in case none is specified for the page if (empty($seodesc)) $seodesc = "Oh! I am Homestar, and This is A Website!"; // Output the html code $seodesc_block = "<meta name=\"description\" content=\"".$seodesc."\"/>\n"; echo $seodesc_block; } function title_insert() { global $post; // VERY important! // Retrieve title meta data from the SEO Pack $seotitle = stripslashes(get_post_meta($post->ID, '_aioseop_title', true)); // Default description in case none is specified for the page if (empty($seotitle)) $seotitle = ""; // Output the html code $seotitle_block = "<title>".$seotitle."</title><meta name=\"title\" content=\"".$seotitle."\"/>\n"; echo $seotitle_block; } 

Please check this URL for reference.

+1
source

Source: https://habr.com/ru/post/953535/


All Articles