Zupełnie przez przypadek, natknąłem się dziś na bardzo ciekawe rozwiązanie problemu wiszących na końcach wierszy „sierot” – czyli liter i, z, w, o itp., które to powinny być przyklejone do następnego słowa, nie zaś samodzielnie zostawać na końcu.
Pomimo, iż plugin jest dość leciwy, powstał w 2006r., działa bezproblemowo z WordPressem w wersji 2.7.1.
Bocian – tak się zowie, poprawia jeszcze cudzysłowy na polskie czyli „”, ponadto… zresztą o rozlicznych zaletach poczytać można na blogu autorki. Można też oczywiście pobrać wtyczkę.

Pozwolę sobie jednak zasugerować przyszłym użytkownikom pewną poprawkę. Plugin jest niewrażliwy na „subtelność nawiasową”, czyli poradzi sobie ze zdaniem: „euro się umacnia, a złotówka słabnie”, natomiast w przypadku: „lubię makaron (a szczególnie świderki)” już nie.

poprawka

W linii 102 pliku bocian.php:

$curl = preg_replace('/ (w|we|z|za|ze|i|o|u|a) /', ' \1 ', $curl);

zmeniamy na:

$curl = preg_replace('/ (w|\(w|we|\(we|z|\(z|za|\(za|ze|\(ze|i|\(i|o|\(o|u|\(u|a|\(a|np\.) /', ' \1 ', $curl);

czyli dodajemy opcję z nawiasami + skrót „np.”

inne zastosowania

Metoda powyższa działa na wbudowane mechanizmy generowania treści w WordPressie. W przypadku, kiedy za generowanie treści odpowiada inny plugin sprawa już niekoniecznie jest taka prosta.
Do pisania quasi-newsów używam wtyczki AWSOM News, która sama pobiera sobie z bazy treść i parametry newsa, sama go obrabia i bezpośrednio wyświetla w miejscu przez nas wskazanym. Przy domyślnej instalacji Bocian na te treści nie działa.
Potrzebna będzie mała modyfikacja AWSOM News (można to zrobić bardziej elegancko, ja zrobiłem akurat tak).

W pliku awesomnews.php:
w linii 112:

function display_my_news_announcement($locationcode) {
global $wpdb, $awsom_news_table_name, $awsom_news_min_admin_level;


od linii 140:

$displaynewspost = $thisnewspost->newstext;
$newspostanid = $thisnewspost->anid;
$newspostwhoview = $thisnewspost->whocanview;
$beforenewspost = "<div style=\"".$awsom_news_custom_css."\">";
$afternewspost = "</div>";
$displaynewspost = $beforenewspost.$displaynewspost.$afternewspost;

zmieniamy na:
w linii 112:

function display_my_news_announcement($locationcode) {
global $wpdb, $awsom_news_table_name, $awsom_news_min_admin_level, $wppBocian;


od linii 140:

$displaynewspost = $thisnewspost->newstext;
$displaynewspost = $wppBocian->pl_texturize($displaynewspost);)
$newspostanid = $thisnewspost->anid;
$newspostwhoview = $thisnewspost->whocanview;
$beforenewspost = "<div style=\"".$awsom_news_custom_css."\">";
$afternewspost = "</div>";
$displaynewspost = $beforenewspost.$displaynewspost.$afternewspost;

Teraz poprawne formatowanie powinno działać także na newsach.

Tagged with →  
Share →

2 Responses to Bocian – WordPress poprawniejszy

  1. Mała poprawka :) w Bocianie brakuje twardej spacji, powinno być: $curl = preg_replace(‚/ (w|\(w|we|\(we|z|\(z|za|\(za|ze|\(ze|i|\(i|o|\(o|u|\(u|a|\(a|np\.) /’, ‚ \1&nbsp;’, $curl);

  2. Maurycy pisze:

    No jak najbardziej. Nawet patrząc w źródło wpisu to tak było, tylko w treści powinienem to napisać jako &amp;nbsp; a nie tylko jako &nbsp; (by przeglądarka poprawnie wyświetliła), podobnie jak Ty komentarzu ;)
    W obu miejscach poprawiam i dziękuję za jakże słuszną uwagę.