Relativní časování


V šabloně si budete muset najít, kde se vypisuje čas, což je práce jen pro vás. Já vám jen mohu poradit, že se to většinou provádí funkcemi the_date a the_time. Ty pak stačí nahradit novou funkcí, kterou si vložíte do souboru functions.php

function cas() {
    $hodina = 60 * 60;
    date_default_timezone_set('Europe/Prague');
    $rozdil = Time() - get_the_time('U');
    if ($rozdil < 60) {
        if ($rozdil == 1)
            echo "před sekundou";
        else
            echo "před " . $rozdil . " sekundami";
    }
    elseif ($rozdil < 60 * 100) {
        if (round($rozdil / 60) == 1)
            echo "před minutou";
        else
            echo "před " . round($rozdil / 60) . " minutami";
    }
    elseif ($rozdil < 24 * $hodina) {
        if (round($rozdil / ($hodina)) == 1)
            echo "před hodinou";
        else
            echo "před " . round($rozdil / ($hodina)) . " hodinami";
    }
    elseif ($rozdil < 7 * 24 * $hodina) {
        if (round($rozdil / ($hodina * 24)) == 1)
            echo "před 1 dnem";
        else
            echo "před " . round($rozdil / ($hodina * 24)) . " dny";
    }
    elseif ($rozdil < 30 * 24 * $hodina) {
        if (round($rozdil / (7 * $hodina * 24)) == 1)
            echo "před týdnem";
        else
            echo "před " . round($rozdil / (7 * $hodina * 24)) . " týdny";
    }
    elseif ($rozdil < 12 * 30 * 24 * $hodina) {
        if (round($rozdil / (30 * $hodina * 24)) == 1)
            echo "před měsícem";
        else
            echo "před " . round($rozdil / (30 * $hodina * 24)) . " měsíci";
    }
    else
        echo get_the_time() . " " . get_the_date();
}

Do vaší šablony poté stačí vložit cas(); Jestli nechcete v relativním časování zobrazovat například měsíce, stačí škodlivé řádky vymazat. Pokud chcete kod využít pro komentáře, musíte změnit get_the_time na get_comment_time.