A változatosság kedvéjért újra egy kérdést teszek fel. Amit szeretnék megvalósítani, az nagyon egyszerű, nekem viszont még is nehéz megoldás. A főoldalon megjelenő bejegyzések dátumát szeretném oly módon megjeleníteni, hogy az ne dátum formátumként, hanem percek, órák és napokként legyen jelölve. A wordpress bejegyzések mellet általában egy dátum formátum szokott megjelenni, ebben a formában (2010.8.14 - 16:20). Nekem egyszerűbb formátumra lenne szükségem, a bejegyzés mellet nem dátumot, hanem egyszerű időt szeretnék elhelyezni.
Egy példa a jobb érthetőség kedvéjért: 10 perce, 1 órája, 1 napja, stb. Ez gondolom nem egy bonyolult dolog, csak a megfelelő formátum kéne, amit én sajnos nem találok sehol. Nem tudom, hogy keressem, hogy milyen kód sor kell nekem. Ebben kérném a segítségeteket…
A sablonban keresd ezt
cseréld ki erre
Kipróbáltam, de sajna nem mükszik. Minden eltűnik az oldalról… :S
Azóta találtam egy kódot, ami megfelelő, csak egy a baj vele, a magyar ragokat nem ismeri, vagy csak valamivel meg kéne toldani a kódot?
A következőképpen jelenik meg az idő: 3 nap ago, értelem szerüen úgy lenne a helyes, hogy 3 nappal ezelőtt, vagy 3 napja. De ezt nem tudja. Mit kéne nekemmódosítanom ebben a kódban, hogy teljesen magyarúl jelenítse meg az időformátumot?
Ez a rész kerül a function.php-ba:
function time_ago( $type = ‘post’ ) {
$d = ‘comment’ == $type ? ‘get_comment_time’ : ‘get_post_time’;
return human_time_diff($d(‘U’), current_time(‘timestamp’)) . " " . __(‘ago’);
}
Ez pedig az index.php-ba, vagy ahol megszeretnénk jeleníteni, nálam a home.php hírek részénél lenne.
function time_ago( $type = 'post' ) {
$d = 'comment' == $type ? 'get_comment_time' : 'get_post_time';
return human_time_diff($d('U'), current_time('timestamp')) . " " . __('nappal ezelőtt');
}
function time_ago( $type = 'post' ) {
$d = 'comment' == $type ? 'get_comment_time' : 'get_post_time';
return human_time_diff($d('U'), current_time('timestamp')) . " " . __('nappal ezelőtt');
}
Ezzel csak az a probléma, hogy ha fel kerül egy friss hír, akkor percben mutatja az eltelt időt, majd órában, és csak utána napban..:) Tehát hiába írom én oda be, hogy ,,nappal ezelőtt", hiszen ha 1 perce raktam fel a bejegyzést, akkor is ez a szöveg marad az idő előtt..:)
Úgy látom itt hiába kérek segítséget, csak nem kapok választ. Na mindegy, majd megoldom egyedül és a jövőben én is így állok hozzá a dolgokhoz. Ennyit a magyar Wordpress fórumról. Kösz! Minden jót…
A fenti kódot nem tudod átírni, mert csak az “ago” cserélhető, a ragok nem.
Ezzel talán többre mész (igaz, hogy csak az órákig van legyártva, de a diff értéket 24-szerezve szerintem lehet bővíteni pl. napokkal):
http://dev-tips.com/featured/creating-a-relative-time-function
És ne tessék rinyálni, én minden nap felnézek errefelé, mégis most látom először ezt a témát.
mellékesen siránkozás helyett ennyibe telt:
http://www.google.hu/search?q=wordpress+posted+ago&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:hu-HU:official&client=firefox-a
5ik link > ( this plugin ) > download > extract > .js file benne >
settings: {
refreshMillis: 60000,
allowFuture: false,
strings: {
prefixAgo: null,
prefixFromNow: null,
suffixAgo: "ago",
suffixFromNow: "from now",
ago: null, // DEPRECATED, use suffixAgo
fromNow: null, // DEPRECATED, use suffixFromNow
seconds: "less than a minute",
minute: "about a minute",
minutes: "%d minutes",
hour: "about an hour",
hours: "about %d hours",
day: "a day",
days: "%d days",
month: "about a month",
months: "%d months",
year: "about a year",
years: "%d years"
}
},
hmmm beletelt vagy 5 percbe.. amiből 1ben gondolkodni is kellett.. a többiben csak kattingatni mint az eszement.. de ha más nem csinálja meg helyetted akkor jó idejönni rinyálni mi? hát bakker..
[off]bocs a dupláért..[/off]
mellékesen siránkozás helyett ennyibe telt:
http://www.google.hu/search?q=wordpress+posted+ago&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:hu-HU:official&client=firefox-a
5ik link > ( this plugin ) > download > extract > .js file benne >
settings: {
refreshMillis: 60000,
allowFuture: false,
strings: {
prefixAgo: null,
prefixFromNow: null,
suffixAgo: "ago",
suffixFromNow: "from now",
ago: null, // DEPRECATED, use suffixAgo
fromNow: null, // DEPRECATED, use suffixFromNow
seconds: "less than a minute",
minute: "about a minute",
minutes: "%d minutes",
hour: "about an hour",
hours: "about %d hours",
day: "a day",
days: "%d days",
month: "about a month",
months: "%d months",
year: "about a year",
years: "%d years"
}
},
hmmm beletelt vagy 5 percbe.. amiből 1ben gondolkodni is kellett.. a többiben csak kattingatni mint az eszement.. de ha más nem csinálja meg helyetted akkor jó idejönni rinyálni mi? hát bakker..
[off]bocs a dupláért..[/off]
De jó neked, hogy ilyen okos vagy és hogy a google a barátod, tele vagy jóindulattal. De hát mit is várjon az ember a magyartól. Csak lekezelést és nagyképűséget, ez neked is megy. Ilyen emberektől nekem nem kell a segítség. Tartsd meg magadnak..
A fenti kódot nem tudod átírni, mert csak az "ago" cserélhető, a ragok nem.
Ezzel talán többre mész (igaz, hogy csak az órákig van legyártva, de a diff értéket 24-szerezve szerintem lehet bővíteni pl. napokkal):
http://dev-tips.com/featured/creating-a-relative-time-function
És ne tessék rinyálni, én minden nap felnézek errefelé, mégis most látom először ezt a témát. :D
Köszi, ránézek.:)
Találtam egy remek kódot, amivel sikerült megoldanom a problémám. Hát ha valakinek szintén erre van szüksége.
Meg kell nyitni a témánk fuctions.php fájlját, majd bele illeszteni az alábbi kódot. Mentés…
$difference = time() - $timestamp;
if($difference < 0) return '0 seconds ago';
elseif($difference < 864000){
$periods = array('week' => 604800,'day' => 86400,'hr' => 3600,'min' => 60,'sec' => 1);
$output = '';
foreach($periods as $key => $value){
if($difference >= $value){
$time = round($difference / $value);
$difference %= $value;
$output .= ($output ? ' ' : '').$time.' ';
$output .= (($time > 1 && $key == 'day') ? $key.'s' : $key);
$granularity--;
}
if($granularity == 0) break;
}
return ($output ? $output : '0 seconds').' ago';
}
else return date($format, $timestamp);
}
Meghívni pedig az alábbi kóddal tudjuk. Ezt oda illesszük be, ahol meg akarjuk jeleníteni az időformátumot.
Az első nap másodpercekben, percekben és órákban jelezi a cikk bejegyzésének idejét, majd egy hétig napokban számolja. Ha letelt az egy hét, akkor át vált a szokásos dátum formátumra.
Remek kis kód, és egyszerű a beépítése, nem igényel bonyolult, hosszadalmas munkát. 5 perc és máris használható. Az is nagyon jó, hogy könnyedén magyarítható, tehát nem lesz gond a ragozással.
Remélem hasznotokra válik nektek is és tudtam valakinek segíteni. :)
Az eredeti bejegyzést pedig itt találjátok meg.