Use custom/external URL for links (of title, thumbnail, read-more button)

Sometimes, you want to link post title to a custom URL, all things you need to do is creating a new custom field for the post, with field name is

cv_custom_url

and value is the external URL you want to use (click to read about how to add new custom field).

add-custom-field

Content Views Pro will use this custom link for Title, Thumbnail, Read More button of post in View. To keep the original link for any of them, please check this document.


# For Media Files

If you are selecting the Media option in Filter Settings > Content Type, and want to add custom URL for media files, please follow following steps:

  • Install & activate the “Advanced Custom Fields” plugin
  • From the Custom Fields admin screen, click the Add New button to create a new field group
  • Click the Add Field button, set
    cv_custom_url
    as value of Field Label and Field Name:
    acf custom url field
  • Under Location, select Attachment for first select-box:
    acf custom field for attachment
  • Click the Publish button
  • From the Media admin screen, click to edit each media file, then set your custom URL as value of cv_custom_url field:
    cvp set custom url for media

# Keep The Original Link (To The Post Page)

By adding the cv_custom_url custom field to a post, these elements:

  • title
  • thumbnail
  • read-more button

of the post in View will link to the custom/external URL.

To keep original link (to the post page) for any elements, please add this code to file functions.php in the theme’s folder:

// Content Views Pro - Keep the original URL
add_filter( 'pt_cv_field_href', 'cvp_theme_keep_post_url', 9999, 2 );
function cvp_theme_keep_post_url( $href, $post ) {
	$traces = debug_backtrace( 2 );

	$keep_post_url = array();

	// Remove below # to keep original URL for Title
	# $keep_post_url[] = '_field_title';
	
	// Remove below # to keep original URL for Thumbnail
	# $keep_post_url[] = '_field_thumbnail';
	
	// Remove below # to keep original URL for "Read more" button
	# $keep_post_url[] = '_field_content';

	foreach ( $traces as $trace ) {
		if ( in_array( $trace[ 'function' ], $keep_post_url ) ) {
			$href = get_permalink( $post );
		}
	}

	return $href;
}

# Use another custom field as custom link

If you set the link using another custom field, you can use that custom link by adding this code to file functions.php in the theme’s folder:

// Content Views Pro - use custom field value as custom link
add_filter( 'pt_cv_field_href', 'cvp_theme_use_custom_url_by_customfield', 100, 2 );
function cvp_theme_use_custom_url_by_customfield( $href, $post ) {
	$custom_url = get_post_meta( $post->ID, 'CUSTOM_FIELD_HERE', true );
	if ( $custom_url ) {
		$href = $custom_url;
	}

	return $href;
}

If you set custom link by the “WP Gallery Custom Links” plugin, replaced CUSTOM_FIELD_HERE by _gallery_link_url.

If you set custom link by the “Page Links To” plugin, replaced CUSTOM_FIELD_HERE by _links_to.

Otherwise, replace CUSTOM_FIELD_HERE with the name/key of the custom field.

# Use shortcode as value of “cv_custom_url”

If the value of the “cv_custom_url” field is not an URL, but an shortcode, please this code to file functions.php in the theme’s folder:

// Content Views Pro - use shortcode as custom link
add_filter( 'pt_cv_field_href', 'cvp_theme_use_custom_url_by_customfield_sc', 999, 2 );
function cvp_theme_use_custom_url_by_customfield_sc( $href, $post ) {
	$custom_url = get_post_meta( $post->ID, 'cv_custom_url', true );
	if ( $custom_url ) {
		$href = do_shortcode( $custom_url );
	}

	return $href;
}

Best regards,

Scroll to Top