WordPress provides a wealth of functionality to assist in presenting your content in the way you desire. Auto-hyperlinking of URLs in your post content field in most cases can easily be done by adding the following line of code to the WordPress functions.php file:
add_filter( 'the_content', 'make_clickable', 12 );
However, if you’re using Advanced Custom Fields (ACF) then you will find this filter doesn’t work on your WYSIWYG fields. Luckily for us, ACF provides a filter for us to alter the content in the field called “load_field” and WordPress provides us a handy function call "make_clickable", which converts content URI, www, FTP, and email addresses into links.
More About Wordpress Development Services
How To:
Looking at the code example below:
- Place this code in your child themes functions.php
- We pass in the value that is stored in the database as $value
- Assign $value to the make_clickable function and run the $value through the function, this will convert the links to hyperlinks
- We then return the $value
function my_acf_load_value($value) {
$value = make_clickable($value);
return $value;
}
Use the proper hook desired:
// Filter based on all fields.
add_filter('acf/load_value’, 'my_acf_load_value', 10, 3);
// Filter based on field name.
add_filter('acf/load_value/name=field_type’, 'my_acf_load_value', 10, 3);
// Filter based on field name.
add_filter('acf/load_value/name=field_name’, 'my_acf_load_value', 10, 3);
// Filter based on field key.
add_filter('acf/load_value/name=field_key, 'my_acf_load_value', 10, 3);
Full code:
The following code demonstrates how to force a single field to auto-hyperlink inline urls.
/**
* Auto-hyperlink urls for the about_content field.
*/
function my_acf_load_value($value) {
$value = make_clickable($value);
return $value;
}
add_filter('acf/load_value/name=about_content’, 'my_acf_load_value', 10, 3);
Presto! Any values entered into your Advanced Custom Field which contain url strings will now be output as proper links to the url.