Αν θέλεις να μετατρέψεις αυτόματα συγκεκριμένες λέξεις (keywords) ή τα tags του WordPress σε links μέσα στο περιεχόμενο των άρθρων σου χρησιμοποιώντας PHP, μπορείς να το κάνεις προσθέτοντας ένα φίλτρο στο αρχείο functions.php του θέματός σου.
Αυτή η μέθοδος είναι εξαιρετική για Internal Linking (εσωτερική διασύνδεση), που βοηθάει πολύ στο SEO.
1. Αυτόματη μετατροπή Tags σε Links
Ο παρακάτω κώδικας ψάχνει στο κείμενο για λέξεις που υπάρχουν ήδη ως Tags στο site σου και τις μετατρέπει αυτόματα σε links προς τη σελίδα του αντίστοιχου tag.
PHP
function link_words_to_tags($content) {
$tags = get_tags();
if ($tags) {
foreach ($tags as $tag) {
$tag_name = $tag->name;
$tag_link = get_tag_link($tag->term_id);
// Χρήση regex για αντικατάσταση μόνο αν η λέξη δεν είναι ήδη μέσα σε <a> tag
$pattern = '/(?!(?:[^<]+>|[^>]+<\/a>))\b(' . preg_quote($tag_name, '/') . ')\b/i';
$content = preg_replace($pattern, '<a href="' . $tag_link . '">$1</a>', $content, 1);
// Το "1" στο τέλος σημαίνει ότι θα αντικαταστήσει μόνο την πρώτη εμφάνιση
}
}
return $content;
}
add_filter('the_content', 'link_words_to_tags');
2. Σύνδεση συγκεκριμένων λέξεων με custom URLs
Αν θέλεις να ορίσεις εσύ συγκεκριμένες λέξεις-κλειδιά και πού θα οδηγούν (π.χ. σε affiliate links ή σε συγκεκριμένες σελίδες), χρησιμοποίησε αυτόν τον κώδικα:
PHP
function auto_link_keywords($content) {
$keywords = array(
'WordPress' => 'https://wordpress.org',
'PHP' => 'https://www.php.net',
'hosting' => 'https://yourlink.com/hosting'
);
foreach ($keywords as $word => $url) {
$pattern = '/(?!(?:[^<]+>|[^>]+<\/a>))\b(' . preg_quote($word, '/') . ')\b/i';
$content = preg_replace($pattern, '<a href="' . $url . '" target="_blank">' . $word . '</a>', $content, 1);
}
return $content;
}
add_filter('the_content', 'auto_link_keywords');
Τι πρέπει να προσέξεις:
- Απόδοση (Performance): Αν έχεις χιλιάδες tags, το να τρέχει αυτό το script σε κάθε “φόρτωμα” σελίδας μπορεί να καθυστερήσει το site σου. Σε αυτή την περίπτωση, είναι προτιμότερο να χρησιμοποιήσεις ένα plugin με caching (όπως το Link Whisperer ή το Internal Links Manager).
- SEO Spaming: Μην το παρακάνεις. Αντικαθιστώντας κάθε δεύτερη λέξη με link, η Google μπορεί να το θεωρήσει spam. Ο κώδικας παραπάνω (με την παράμετρο
1) αντικαθιστά μόνο την πρώτη εμφάνιση της λέξης. - Regex Check: Ο κώδικας περιλαμβάνει έναν έλεγχο (
(?!(?:[^<]+>|[^>]+<\/a>))) ώστε να μην δημιουργεί link αν η λέξη βρίσκεται ήδη μέσα σε έναν σύνδεσμο ή μέσα σε HTML tags (π.χ. σε τίτλους<h2>ή alt text εικόνων).
Πώς σου φαίνεται αυτή η λύση; Χρειάζεσαι βοήθεια για να την περιορίσεις μόνο σε συγκεκριμένες κατηγορίες άρθρων;

