Plugin Author
myCred
(@designbymerovingi)
Hey Iskon47.
URLs to users profiles are inserted using user related template tags, mainly the %user_profile_url% and %user_profile_link% tags. We can customize these and adjust the URL to anything we want.
Here is a quick customization that goes into your themes functions.php file:
add_filter( 'mycred_parse_tags_user', 'mycred_pro_adjust_user_url', 1, 3 );
function mycred_pro_adjust_user_url( $content, $user, $data ) {
// If user no longer exists bail now.
if ( ! isset( $user->ID ) ) return $content;
// Construct our own url
$url = home_url( '/forums/users/' . $user->user_login . '/' );
// Parse the template tags now
$content = str_replace( '%user_profile_url%', $url, $content );
$content = str_replace( '%user_profile_link%', '<a href="' . $url . '">' . $user->display_name . '</a>', $content );
// Return to let myCRED do the rest.
return $content;
}
This code snippet will replace these two template tags before myCRED does with the URL of our choosing. No changes are necessary to your existing log templates.
Let me know if I can be of further assistance.
Thread Starter
Mike
(@iskon47)
Hi Gabriel,
Thank you so much for the quick response! Again, your plugin is amazing and your support is clearly fantastic as well!
I apologize for being a pain, but I don’t really know much about code. Where exactly do I paste that into?
Plugin Author
myCred
(@designbymerovingi)
Hey.
No problem. You paste the code into your theme’s functions.php file. Of course if you are using a child-theme then it goes into your child-theme’s functions.php file (not both or you will have a white screen of death).
Where in the file you paste it does not matter.
Thread Starter
Mike
(@iskon47)
Awesome, I’ll try to do it without screwing anything up haha.
I just paste the code as-is for what I was looking for? No need for me to adjust anything?
Plugin Author
myCred
(@designbymerovingi)
The above example is based on the url setup you mentioned so if that works for you then there is no need to change anything in the code and keep using the default user related template tags in your log entries.
If the URL does not work on the other hand you would need to adjust:
$url = home_url( '/forums/users/' . $user->user_login . '/' );
to something that works better for you.
Plugin Author
myCred
(@designbymerovingi)
I actually found an error in my own code above. In some special instances (depending on your setup) this might return an error instead of a url.
Corrected code:
add_filter( 'mycred_parse_tags_user', 'mycred_pro_adjust_user_url', 1, 3 );
function mycred_pro_adjust_user_url( $content, $user, $data = '' ) {
if ( ! isset( $user->ID ) ) return $content;
$_user = get_userdata( $user->ID );
$url = home_url( '/forums/users/' . $_user->user_login . '/' );
$content = str_replace( '%user_profile_url%', $url, $content );
$content = str_replace( '%user_profile_link%', '<a href="' . $url . '">' . $_user->display_name . '</a>', $content );
return $content;
}
I tried your last code but that resulted in that my website didn’t load (couldn’t visit the website), so I had to remove the code. Any ideas why it didn’t work?
Plugin Author
myCred
(@designbymerovingi)
@chakelan. Sounds like you have two copies of the code instead of one. That will result in a white screen of death. Make sure you only have one piece of code.
Otherwise enable WP_DEBUG in your wp-config.php file to see what exactly is the issue.