Украина, Днепр
(095) 478-70-11
Иногда в начале разработки когда все товары уже добавлены но сайт не открыть в общий доступ, а обнаружилось, что есть ссылки на русском языке, например при импорте товаро. Ситуацию можно исправить простым скриптом в function.php. Он обновит все товары, возьмет заголовок товара, транслитерирует его и добавит в ссылки.
function translit($s) { $s = (string) $s; $s = strip_tags($s); $s = str_replace(array("\n", "\r"), " ", $s); $s = preg_replace("/\s+/", ' ', $s); $s = trim($s); $s = function_exists('mb_strtolower') ? mb_strtolower($s) : strtolower($s); $s = strtr($s, [ 'а'=>'a','б'=>'b','в'=>'v','г'=>'g','д'=>'d', 'е'=>'e','ё'=>'e','ж'=>'j','з'=>'z','и'=>'i', 'й'=>'y','к'=>'k','л'=>'l','м'=>'m','н'=>'n', 'о'=>'o','п'=>'p','р'=>'r','с'=>'s','т'=>'t', 'у'=>'u','ф'=>'f','х'=>'h','ц'=>'c','ч'=>'ch', 'ш'=>'sh','щ'=>'shch','ы'=>'y','э'=>'e','ю'=>'yu', 'я'=>'ya','ъ'=>'','ь'=>'' ]); $s = preg_replace("/[^0-9a-z-_ ]/i", "", $s); $s = str_replace(" ", "-", $s); return $s; } $posts = get_posts( array ( 'numberposts' => -1, 'post_type' => 'product' ) ); foreach ( $posts as $post ) { // check the slug and run an update if necessary //$new_slug = sanitize_title( $post->post_title ); $new_slug =translit($post->post_title); if ( $post->post_name != $new_slug ) { wp_update_post( array ( 'ID' => $post->ID, 'post_name' => $new_slug ) ); } }
Copyright © 2012-2023 All rights reserved.
created by WPS.