WordPress mini-howto: Zavaró #more eltávolítása a permalinkből

Ez csak egy rövid lejegyzés lesz csak saját magamnak, mert a probléma sajnos minden frissítés után előjön, és meguntam mindig újra és újra előkeresni, hogy is kell megoldani. Arról van szó, hogy aki WordPress blogmotort használ és a bejegyzéseit úgy írja hogy kis bevezető után, egy úgynevezett <–more–> taget tesz, az már észre vehette, hogy az oldalon a <–more–> linkre kattintva valami nem stimmel az url-el.

Valami ilyesmiket láthatunk:
http://blogunk.oldala/?p=46#more-46 vagy http://blogunk.oldala/proba-post#more-46

Persze egyből szemet szúró, hogy mi a fene az a #more-46 mindkét esetben. Sőt ha próbaképen beírjuk a böngészőnkbe az címeket, viszont elhagyjuk a hashmark utáni rész, meglepődve kell tapasztalnunk, hogy tökéletesen működik.

Tehát csak a baj van vele. Főleg copyzásoknál, fórumokba másolásnál. Nincs más szedjük ki. A dolog nagyon egyszerű és veszélytelen módon orvosolható, egyetlen hátránya van. Minden egyes blog motor frissítés után újra meg kell tennünk, mert bizony felülíródik.

A WordPress könyvárában a wp-includes/template-functions-post.php filet nyissuk meg editálásra (WP 2.1 esetén post-template.php-t). Itt keressük meg a következő sort:

$output .= ' <a href="'. get_permalink() . "#more-$id\">$more_link_text</a>";

És változtassuk meg erre:

$output .= ' <a href="'. get_permalink() ."\">$more_link_text</a>";

Esetleg erre:

$output .= ' <a href="'. get_permalink() .'">$more_link_text</a>';

Akkor egy kis magyarázat. Az eredetinél jól látható, hogy a get_permalink() függvény után, ami nem csinál mást, minthogy kigenerálja nekünk az oldal azonosítóját, tehát ez után még egy #more-$id szöveget is hozzátesz. Na ez nekünk nem kell. A második sorban ezt eltávolítottuk. A harmadikban pedig még a végjelet képező „/” jelet is kiszedhetjük. Kinek hogy tetszik.

Mindenki próbálkozhat vele akinek igénye van rá.

Akit esetleg komolyabb változtatások is érdekelnek az olvasgassa ezt, az oldalt.

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük