Kommentek számozása, kommentszámláló


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 echo get_avatar($comment,$size='48',$default='' ); ?>



    <?php printf(__('%s mondja:'), get_comment_author()) ?>


    <?php printf(__('%1$s at %2$s'), get_comment_date(), get_comment_time()) ?><?php edit_comment_link(__('(Edit)'),' ','') ?>



    <?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

    1. 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. :slight_smile:





    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: