KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
The function below is designed to apply rel="nofollow" attributes to all external links and no internal links unless the path matches a predefined root URL defined as $my_folder below. So given the variables... $my_folder = 'http://localhost/mytest/go/'; $blog_url = 'http://localhost/mytest'; And the content... <a href="http://localhost/mytest/">internal</a> <a href="http://localhost/mytest/go/hostgator">internal cloaked link</a> <a href="http://cnn.com">external</a> The end result, after replacement should be... <a href="http://localhost/mytest/">internal</a> <a href="http://localhost/mytest/go/hostgator" rel="nofollow">internal cloaked link</a> <a href="http://cnn.com" rel="nofollow">external</a> Notice that the first link is not altered, since its an internal link. The link on the second line is also an internal link, but since it matches our $my_folder string, it gets the nofollow too. The third link is the easiest, since it does not match the blog_url , its obviously an external link. However, in the script below, ALL of my links are getting nofollow . How can I fix the script to do what I want? function save_rseo_nofollow($content) { $my_folder = $rseo['nofollow_folder']; $blog_url = get_bloginfo('url'); preg_match_all('~<a.*>~isU',$content["post_content"],$matches); for ( $i = 0; $i <= sizeof($matches[0]); $i++){ if ( !preg_match( '~nofollow~is',$matches[0][$i]) && (preg_match('~' . $my_folder . '~', $matches[0][$i]) || !preg_match( '~'.$blog_url.'~',$matches[0][$i]))){ $result = trim($matches[0][$i],">"); $result .= ' rel="nofollow">'; $content["post_conten
Tags (comma-separated)
Save Edits
Cancel