Hostujemytanio – Hosting stron WWW

Zmiana pozycji lite...
 
Powiadomienia
Wyczyść wszystko

Zmiana pozycji liter a/i/w itp. - tz. sierotek na końcu zdania - Elementor/Wordpress

1 Wpisy
1 Użytkownicy
0 Reactions
5 Widoki
David
Admin
Wpisy: 13
Reputacja przyznana:
0 0
Rozpoczynający temat
 

Witam,

Jest to prosty skrypt/funkcja która ma za zadanie zmienić i/w/a itp. aby nie pozostawały na końcu same.
Czyli:

Przykładowy tekst i
przykład

Na:

Przykładowy tekst
i przykład

 

Gdzie wkleić funkcje? 

Wklejamy ją do functions.php w stylu potomnym. Działa z wtyczką elementor!

function pl_sierotki_buffer_start() {
    if (!is_admin()) {
        ob_start('pl_sierotki_buffer_callback');
    }
}
add_action('wp_head', 'pl_sierotki_buffer_start', 1);

function pl_sierotki_buffer_callback($html) {

    $placeholders = [];
    $i = 0;

    $html = preg_replace_callback(
        '#<(table|script|style|code)[^>]*>.*?</\1>#is',
        function ($m) use (&$placeholders, &$i) {
            $key = '%%BLOCK_' . $i++ . '%%';
            $placeholders[$key] = $m[0];
            return $key;
        },
        $html
    );
    $html = preg_replace(
        '/(^|\s)([aiouwzAIUOWZ])\s+/u',
        '$1$2&nbsp;',
        $html
    );
    return strtr($html, $placeholders);
}

 

Wersja bez elementora:

function pl_sierotki_wp($content) {
    if (strpos($content, '<table') !== false) {
        return $content;
    }
    return preg_replace(
        '/(^|\s)([aiouwzAIUOWZ])\s+/u',
        '$1$2&nbsp;',
        $content
    );
}
add_filter('the_content', 'pl_sierotki_wp', 99);

 

Dodajemy tak samo - w plik functions.php

Wersja rozbudowana jak dla elementor - tylko pod zwykłego Wordpressa:

function pl_sierotki_wp_safe($html) {

    $placeholders = [];
    $i = 0;

    $html = preg_replace_callback(
        '#<(table|script|style|code)[^>]*>.*?</\1>#is',
        function ($m) use (&$placeholders, &$i) {
            $key = '%%BLOCK_' . $i++ . '%%';
            $placeholders[$key] = $m[0];
            return $key;
        },
        $html
    );

    $html = preg_replace(
        '/(^|\s)([aiouwzAIUOWZ])\s+/u',
        '$1$2&nbsp;',
        $html
    );

    return strtr($html, $placeholders);
}

add_filter('the_content', 'pl_sierotki_wp_safe', 99);

 

Jeżeli chcemy kombo to (Dla elementora i zwykłego Wordpressa):

if (did_action('elementor/loaded')) {
    // wersja buffer (Elementor)
} else {
    // wersja the_content (normalny WP)
}

 

Dodatkowo jest dodane <table w celu nie psucia wyglądu stron 🙂
Oczywiście można wgrać wtyczkę, ale bez sensu jest dodawać dodatkowy kod który zaśmieca stronę, a można wykonać to prostą funkcją.

 

 


Ten temat został zmodyfikowany 3 dni temu 3 razy przez David

Główny administrator i założyciel hostujmytanio.pl

 
Opublikowano : 01/02/2026 11:13 am
Udostępnij: