Ако използвате безплатната версия на приставката Polylang за WordPress, вече знаете, че новата страница или публикация, която тя генерира за превод, не копи ра оригиналното съдържание.
Това е една от функциите на платената версия, а в безплатната версия трябва да я поставите на ръка.
За да разрешите този проблем и да ускорите процеса, просто добавете няколко функции във файла functions.php на вашия шаблон.
Винаги е препоръчително да го добавите в"дъщерна тема", в собствена функционална приставка или с помощта на Code Snippets, в случай че не работи за вас и можете лесно да върнете промените или в случай че нещо се счупи поради бъдеща актуализация на WordPress, вашия шаблон, Polylang или версия на PHP.
// Copying content when creating a translation with Polylang
function jb_editor_content( $content ) {
// Polylang sets the 'from_post' parameter
if ( isset( $_GET['from_post'] ) ) {
$my_post = get_post( $_GET['from_post'] );
if ( $my_post )
return $my_post->post_content;
}
return $content;
}
add_filter( 'default_content', 'jb_editor_content' );
// Copying content when creating a translation with Polylang
function jb_editor_title( $title ) {
// Polylang sets the 'from_post' parameter
if ( isset( $_GET['from_post'] ) ) {
$my_post = get_post( $_GET['from_post'] );
if ( $my_post )
return $my_post->post_title;
}
return $title;
}
add_filter( 'default_title', 'jb_editor_title' );
Не знам дали работи на всички шаблони (тук работи добре с GeneratePress). Намерих го в бележка от декември 2020 г., така че е най-добре първо да го тествате в изолирана среда за тестване(staging).
Превод на етикети с Polylang, друга история
Настрана. Polylang, въпреки че е един от най-популярните и леки безплатни плъгини за създаване на многоезичен блог, е един от малкото, които използвам и които според мен не се подобряват твърде много в PRO версията си. Опитах и двете версии и на моменти ми се струва, че е тромава. Мисля, че трябва да се развие, за да се опрости използването му, да се подобри преводът на низове и да стане по-интуитивен.
Сега, когато можем да копираме оригиналното съдържание с Polylang на новата страница, която ще бъде преведена, ще имаме заглавието, съдържанието и обикновено също така таговете.
Проблемът в случая с публикациите е, че таговете се копират на английски език и след това се запазват като нови, като се добавя префиксът на езика в края на слога, например "tagname-in" (в случая с английския език).
Това води до създаването на още един нов етикет без връзка с етикета на оригиналния език и без превод. Най-вероятно той ще се окаже осиротял или ще бъде използван само в една публикация.
И което е още по-лошо, етикетите ще се натрупват до смешен брой. Повярвайте ми, преди последната ревизия и почистване (което трябва да направите много внимателно, ако ги индексирате в robots.txt и създадете 301 пренасочвания, тъй като това са URL адреси на вашата страница, които ще бъдат разбити) те достигнаха огромната цифра от 8848.
Освен това наличието на твърде много тагове забавя заявките към базата данни и влошава производителността.
Решението е да не ги премахвате в редактора и да добавяте нови на новия език, защото това няма да ги изтрие, а просто ще създадете отново същите думи с префикс"-en" в слога.
Идеалният начин, макар и досаден, е да сте наясно кои точно тагове (най-много четири или пет) ще използвате в публикацията, която трябва да бъде преведена, и да създадете съответните им преводи ПРЕДИ.
След като преводите бъдат запазени, при създаването на новото копие на публикацията Polylang също ще експортира етикетите, но вече преведени за съответния избран език.
Етикетите служат предимно за подобряване на вътрешното търсене в блога ви и въпреки че много SEO експерти съветват да не индексирате нито етикетите, нито категориите, ако това се прави с рационална и внимателна стратегия, те могат да генерират немалък брой органични посещения. Мога да потвърдя това.
Можете да извлечете много полза от таговете, като създадете добри описания и логична йерархия, която не припокрива имената на категориите и избягва създаването на съдържание, което може да се счита за дублирано.