diff --git a/wp-content/themes/brpp-prawo-podatki/functions.php b/wp-content/themes/brpp-prawo-podatki/functions.php index 8960150..f35ed6b 100644 --- a/wp-content/themes/brpp-prawo-podatki/functions.php +++ b/wp-content/themes/brpp-prawo-podatki/functions.php @@ -260,3 +260,58 @@ function load_more_posts_callback() { wp_reset_postdata(); wp_die(); } + +if (!function_exists('split_text_into_spans')) { + function split_text_into_spans($content, $wordClass = 'word', $charClass = 'char') { + if (empty($content)) return ''; + + $doc = new DOMDocument('1.0', 'UTF-8'); + libxml_use_internal_errors(true); + + $doc->loadHTML('
'.$content.'
', LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD); + libxml_clear_errors(); + + $xpath = new DOMXPath($doc); + + $textNodes = $xpath->query("//div[@id='wrapper']//text()[not(ancestor::script or ancestor::style or ancestor::svg or ancestor::code or ancestor::pre or ancestor::iframe)]"); + + foreach ($textNodes as $node) { + $text = $node->nodeValue; + if (!preg_match('/\S/u', $text)) continue; + + $fragment = $doc->createDocumentFragment(); + + $words = preg_split('/(\s+)/u', $text, -1, PREG_SPLIT_DELIM_CAPTURE); + + foreach ($words as $word) { + if (trim($word) === '') { + $fragment->appendChild($doc->createTextNode($word)); + continue; + } + + $wordSpan = $doc->createElement('span'); + $wordSpan->setAttribute('class', $wordClass); + + $chars = preg_split('//u', $word, -1, PREG_SPLIT_NO_EMPTY); + foreach ($chars as $ch) { + $span = $doc->createElement('span'); + $span->setAttribute('class', $charClass); + $span->appendChild($doc->createTextNode($ch)); + $wordSpan->appendChild($span); + } + + $fragment->appendChild($wordSpan); + } + + $node->parentNode->replaceChild($fragment, $node); + } + + $wrapper = $doc->getElementById('wrapper'); + $html = ''; + foreach ($wrapper->childNodes as $child) { + $html .= $doc->saveHTML($child); + } + + return $html; + } +} diff --git a/wp-content/themes/brpp-prawo-podatki/page-25.php b/wp-content/themes/brpp-prawo-podatki/page-25.php index dae9b82..47c1fa4 100644 --- a/wp-content/themes/brpp-prawo-podatki/page-25.php +++ b/wp-content/themes/brpp-prawo-podatki/page-25.php @@ -54,8 +54,8 @@
-
-

+
+