אתר הוורדפרס שלך יוצר תוכן כפול!

בניית אתרים 0

למה הוורדפרס שלך יוצר תוכן כפול ואיך לתקן את זה?

לאחרונה גילינו בעיה מוזרה במערכת וורדפרס שקשורה לדרך שבה וורדפרס מתמודדת עם קישורים באתר.
הבעיה מפריעה בעיקר למקדמים ואנשי SEO, אני מניח שחלק מכם יראו בזה באג ואחרים פיצ'ר (כמאמר חז"ל על תקלות נפוצות : זהו לא באג אלא פיצ'ר).

תיאור הבעיה: 

כאשר אתה גולש אל כתובת של פוסט באתר, לדוגמה הפוסט הנוכחי שאתה קורא כרגע שכתובתו היא:
https://www.ocw.co.il/term-prob/

הכתובת מורכבת מ:
site-url/post-slug

אם נפתח ביניהם עוד סלש ונכתוב כאן בצורה כזו:
site-url/random-text/post-slug

לדוגמה:
https://www.ocw.co.il/asdasdasd/term-prob/

תגלו שוורדפרס מזהה לבד שאתם מתכוונים לפוסט הנוכחי והוא יעביר אתכם אליו בעזרת redirect

 

מה קורה בקטגוריה או בכל טקסונומיה אחרת?
הכתובת מורכבת מ:
site-url/taxonomy/term-slug
לדוגמה:
https://www.ocw.co.il/category/%d7%91%d7%a0%d7%99%d7%99%d7%aa-%d7%90%d7%aa%d7%a8%d7%99%d7%9d/

 

אם נפתח כאן עוד סלש ונכתוב בצורה כזו:
site-url/taxonomy/random-text/term-slug

לדוגמה:
https://www.ocw.co.il/category/alkfjdalckjsdkjcd/%d7%91%d7%a0%d7%99%d7%99%d7%aa-%d7%90%d7%aa%d7%a8%d7%99%d7%9d/

במקרה הזה וורדפרס לא יעביר אותך אל עמוד הקטגוריה הנכון אלא יציג לך את העמוד עצמו של הקטגוריה על הכתובת השגויה.
זה עלול לגרום לריבוי כתובות ולתוכן כפול באתר.
(אם יש לך yoast אז הוא יוצר קנוניקל בצורה אוטומטית וזה לפחות יתקן את הרושם של התוכן הכפול עבור מנועי החיפוש).

 

פיתרון הבעיה

 

בינתיים, עד שמישהו מהמתכנתים והתורמים של וורדפרס ישים לב ויתקן את הבאג (או הפיצ'ר, תלוי איך מסתכלים על זה),
כתבנו קוד שעושה 301 רידיירקט מהקישור השגוי לקישור הנכון:

 

 

 

function ocw_redirect_tax() {
if(isset(get_queried_object()->term_id) && $term_id = get_queried_object()->term_id){
$actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$real_url = get_term_link($term_id,get_query_var( 'taxonomy' ));
if($actual_link != $real_url){
wp_redirect($real_url,301);
}
die;
}

}

add_action( 'template_redirect', 'ocw_redirect_tax' );

 

את הקוד שמים בקובץ הfunctions.php של התבנית.
יש לך אתר וורדפרס? מוזמן לשלוח למקדם\למתכנת שלך.
מוזמנים לשתף.

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *