How to add a protocol to URLs from WordPress post content

Sometimes you have URLs without http:// OR https:// into WordPress post content.

So you can use the following function for that. You can use this function for the_content filter for WP. And also you can use this anywhere in PHP code other than WP.

<?php
/**
* Fix the URLs from the content.
*
* This function will add protocol to URLs which has no protocol added.
*
* For example,
*
* google.com –> http://google.com
* https://google.com –> https://google.com
* http://google.com –> http://google.com
*
* @param string $content Content.
* @return string Content with fixed URLs.
*/
function fix_content_urls( $content = '' ) {
// Bail, if anything goes wrong.
if ( empty( $content ) ) {
return;
}
// Get all the links.
preg_match_all( '/<a[^>]+href=([\'"])(?<href>.+?)\1[^>]*>/i', $content, $result );
$search = $replace = array();
// Create search & replace array.
if ( isset( $result['href'] ) && ! empty( $result['href'] ) ) {
foreach ( $result['href'] as $url ) {
$parsed_url = parse_url( $url );
// If no protocol found, then add it for replacement.
if ( ! empty( $parsed_url ) && ! isset( $parsed_url['scheme'] ) ) {
$search[] = $url; // Original URL.
$replace[] = esc_url( $url ); // Fixed URL.
}
}
// Fix the URLs.
$content = str_replace( $search, $replace, $content );
// Freeup the variables.
unset( $search );
unset( $replace );
}
return $content;
}

WordPress Copy Content Plugin

Sometimes people needs some part of content from existing posts or pages. Or some needs to add extra content from existing.

So now you dont need to find that post/page and copy that content and paste. Just install this plugin, search the post/page by it’s title and fetch the content.

HOW TO USE?

  • Search post/page by it’s title
  • Select from the search result
  • And fetch the content of selected post/pages

 

You can get the plugin free from here.