Code:
Look inside comments.php and find this line:
<?php if ( $comments ) : ?>
Immediately above that put this new line:
<?php $i = 0; ?>
<?php if ( $comments ) : ?>
Now find the 'foreach' line and add the $i++ line immediately below it.
<?php foreach ($comments as $comment) : ?>
<?php $i++; ?>
<?php echo $i; ?>
Ez alapján megpróbáltam megoldani a kommentek számozását. Tehát az első kommenthez oda írja, hogy 1. a másodikhoz 2. és így tovább. Ez egyik oldalamon működik is, de egy másikon nem találom ezeket a részeket mert nincs benne a comments.php-ben.
Van helyette
Code:
<?php if ( have_comments() ) : ?>
és egy
Code:
<?php wp_list_comments('type=all&callback=mytheme_comment');?>
rész ami egy mytheme_comment funkciót hív a functions.php-ből amihez a kapcsolódó rész:
Code:
function mytheme_comment($comment, $args, $depth) {
$GLOBALS['comment'] = $comment; ?>
id="li-comment-<?php comment_ID() ?>">
<?php if ($comment->comment_approved == '0') : ?>
<?php _e('Kommented moderációra vár!.') ?>
<?php endif; ?>
<?php comment_text() ?>
<?php comment_reply_link(array_merge( $args, array('depth' => $depth, 'max_depth' => $args['max_depth']))) ?>
<?php
}
?>
A kérdés, hogy hogyan lehetséges egy comment counter (Komment számláló) beépítése ebbe a fajta kommetezésbe?
A zöld betűvel szedett résszel próbálkoztam még, de mindegyik hozzászólás elé annyit ír hogy 1. Ami logikus is, de miért nem növekszik?
function mytheme_comment($comment, $args, $depth) {
$GLOBALS[‘comment’] = $comment; ?>
<li id=“li-comment-”>
<div id=“comment-”>
<?php echo get_avatar($comment,$size='48',$default='' ); ?>
<?php printf(__('
%s mondja:'), get_comment_author()) ?>
<a href="comment_ID ) ) ?>">
comment_approved == '0') : ?>
<!--
-->
$depth, 'max_depth' => $args['max_depth']))) ?>
<?php
}
?>
Nos így már alakul, de a több oldalas kommenteknél mindíg ugyan azt a számot írja ki.
20 komment van egy oldalon, de 1700 hsz-es cikknél is csak 1-20-ig számoz. Mit rontok el?
Itt a kód, ha valaki jobban ért hozzá kérem segítsen!
Code:
function mytheme_comment($comment, $args, $depth) {
$GLOBALS['comment'] = $comment;
global $number;
if(!$number) $number = 1; ?>
<li id="li-comment-">
<div id="comment-">
<?php printf(__('%s'), get_comment_author_link()) ?>
comment_approved == '0') : ?>
<a href="comment_ID )) ?>">
$depth, 'max_depth' => $args['max_depth']))) ?>
#
<?php
}
Sajnos nem jutottam előrébb. Lenne egy
- felsorolás számozás féle megoldás, de azzal is csak ott vagyok, hogy egy oldalt sorszámoz végig és ha több oldalas a komment lista, akkor minden oldalnál újraindul a számozás.
Quote:
Ha GIGA nagy betűkkel írsz nem hiszem, hogy valaki előbb válaszol! Légyszíves ezt mellőzd!
Csak a lényeg kiemelése végett írtam nagyobb betüvel.
Itt van ismét egy megoldás, ami szintén csak egy lapon kereszül számozza a kommenteket.
ugyen a wp_list_commets -el hívjuk a funkciót a functions.php fájlból, ami a wordpress theme könyvtárjában található
Code:
<?php
function mytheme_comment($comment, $args, $depth) {
$GLOBALS['comment'] = $comment;
global $comment_num;
if(isset($comment_num)) {
$comment_num++;
} else { $comment_num = 1; }
?>
<li id="li-comment-">
<div id="comment-">
<?php echo get_avatar($comment,$size='54',$default='' ); ?>
# . Komment / oldal
<?php printf(__('
%s mondja:'), get_comment_author()) ?>
<a href="comment_ID ) ) ?>">
comment_approved == '0') : ?>
<!--
-->
$depth, 'max_depth' => $args['max_depth']))) ?>
<?php
}
?>
Ez a rész az érdekes, ezt cseréltem ki, az előzőhöz képest.
Code:
$GLOBALS['comment'] = $comment;
global $comment_num;
if(isset($comment_num)) {
$comment_num++;
} else { $comment_num = 1; }
És megvan. Ismétlem meg van a megoldás a wp_list_comment -es kommetekre a számozási megoldás!
A lényeg, hogy az $args változóval kell játszani és egy új változót is fel kell venni!
A kód amit a functions.php-be fel kell venni az így néz ki:
<?php
function mytheme_comment($comment, $args, $depth) {
if ( ‘’ === $args[‘per_page’] && get_option(‘page_comments’) )
$args[‘per_page’] = get_option(‘comments_per_page’);
if ( empty($args[‘per_page’]) ) {
$args[‘per_page’] = 0;
$args[‘page’] = 0;
}
if ( $args[‘per_page’] ) {
if ( ‘’ == $args[‘page’] )
$args[‘page’] = get_query_var(‘cpage’);
}
$ccomp = ($args[‘page’]-1) * $args[‘per_page’] ;
$GLOBALS[‘comment’] = $comment;
global $comment_num;
if(isset($comment_num)) {
$comment_num++;
} else { $comment_num = 1; }
?>
<li id=“li-comment-”>
<div id=“comment-”>
<?php echo get_avatar($comment,$size='54',$default='' ); ?>
# . Komment / oldal
<?php printf(__('
%s mondja:'), get_comment_author()) ?>
<a href="comment_ID ) ) ?>">
comment_approved == '0') : ?>
<!--
-->
$depth, 'max_depth' => $args['max_depth']))) ?>
<?php
}
?>
A comments.php ben található a . Ez alapban általában üres, de ezzel visszahívást lehet intézni a funkcióhoz ha lecseréljük erre a sorra
Akinek a theme fájl comments.php-jében ez a sor szerepel az használhatja azt a megoldást is amivel én először próbálkoztam (Ennek a topicnak az elő postzjában jegyeztem le).
Remélem fent marad az utókornak és más is tanul belőle! És mint minden megoldás végén hozzáteszem, hogy ha van valakinek egyszerűbb vagy szebb kódja a téma kivitelezésére, vagy hibát talál a kódban az ne habozzon megosztani!
Az első hibát már meg is találtam, de annyi baj legyen.
A # . Komment / oldal résznél kivehetjük, hogy /oldal, mert ugyebár már több oldalon keresztül is tud számozni.
És a kép, hogy hogyan is néznek ki a kommentek az oldalon a hozzászólások résznél: