Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    198

    Wordpress: modificare la funzione <?php comments_template(); ?>

    Salve a tutti,
    nelle pagine di WP, quando si vuole inserire un commento e non si è loggati viene visualizzata sotto al post la scritta "You must be logged in to post a comment". Ed ovviamente quando si è loggati, viene visualizzato il form per l'inserimento dei commenti.

    Nel codice della pagina il tutto viene gestito dalla funzione <?php comments_template(); ?>

    Io avrei la necessità di far visualizzare la scritta "You must be logged in to post a comment" anche all'inizio della pagina, pero' non posso utilizzare la funzione di cui sopra poichè una volta loggato mi stamperebbe di nuovo il form dei commenti, quindi me ne ritroverei due (uno ad inzio ed uno a fine pagina). Ed io avrei bisogno quindi, di una nuova funzione che una volta loggati come risultato non mi stampi nulla, nemmeno lo stato di login. Praticamente dovrebbe semplicemente sparire la scritta "You must be logged in to post a comment". Spero di essermi spiegato.

    Bisognerebbe quindi crearne una ad hoc. Purtroppo essendo un fagiano di php non saprei come fare. Qualcuno potrebbe darmi na mano?

    Il codice php che genera quella funzione l'ho trovato nel file comments.php del template e dovrebbe essere il seguente

    Codice PHP:
    <?php if ( get_option('comment_registration') && !$user_ID ) : ?><p>You must be <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?redirect_to=<?php echo urlencode(get_permalink()); ?>">logged in</a> to post a comment.</p><?php else : ?>
    <form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">
    <?php if ( $user_ID ) : ?>
    <p>Logged in as <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity?></a>. <a href="<?php echo wp_logout_url(get_permalink()); ?>" title="Log out of this account">Log out &raquo;</a></p>
    <?php else : ?>
    <p><input type="text" name="author" id="author" value="<?php echo $comment_author?>" size="22" tabindex="1" <?php if ($req) echo "aria-required='true'"?> /><label for="author"><small>Name <?php if ($req) echo "(required)"?></small></label></p>
    <p><input type="text" name="email" id="email" value="<?php echo $comment_author_email?>" size="22" tabindex="2" <?php if ($req) echo "aria-required='true'"?> /><label for="email"><small>Mail (will not be published) <?php if ($req) echo "(required)"?></small></label></p>
    <p><input type="text" name="url" id="url" value="<?php echo $comment_author_url?>" size="22" tabindex="3"  /><label for="url"><small>Website</small></label></p>
    <?php endif; ?>
    Grazie a chiunque possa darmi na mano.
    La vita è una tempesta, ma prenderla nel culo è un lampo...

  2. #2
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    siccome hai fatto un sacco di giri di parole...io non c'ho capito nulla di quello che vuoi ottenere
    parli di un solo form,poi di due scritte, poi una si l'altra no, scusami ma non ti seguo
    Per modificare o aggiungere un testo (statico, non lo stato di login per intenderci) non è necessario creare nuova funzione,masta modificare il testo
    Se non vuoi il form devi lasciare solo queste due righe:
    Codice PHP:

    <?php if ( get_option('comment_registration') && !$user_ID ) : ?><p>You must be <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?redirect_to=<?php echo urlencode(get_permalink()); ?>">logged in</a> to post a comment.</p><?php else : ?>
    Prova a descrivere più chiaramente quello che vuoi ottenere.
    Ciao
    If you think your users are idiots, only idiots will use it. DropBox

  3. #3
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, inserisci due volte l'inclusione del template che dici.
    Solo nel primo in test mettici questo controllo
    Codice PHP:
    if( !$user_ID ){
    comments_template();

    Dal codice $user_ID è l'ID dell'utente loggato e dovrebbe essere quindi presente.
    Se non dovesse funzionare prova a sosttuire
    $user_ID con is_user_logged_in()

    Quindi se sloggato uscirà il messaggio, se loggato non farà nulla.

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    198
    Speravo di essermi spiegato bene, non è stato così, chiedo scusa.
    Praticamente avrei la necessità che quando non sono loggato compaia la scritta "You must be logged in to post a comment" E quando invece mi loggo questa deve sparire. Fondamentalmente è tutto qui.

    m4rko80 mi sa che ha capito meglio cio' che intendevo: la tua soluzione funziona a metà. Utilizzando il codice

    Codice PHP:
    <? if( !$user_ID ){comments_template(); } ?>
    quando sono loggato è perfetto, non viene stampato nulla, invece quando non sono loggato oltre alla scritta "You must be logged in to post a comment" mi stampa commenti e campo form. Identico risultato se utilizzo is_user_logged_in()
    Praticamente bisogna solo più evitare che stampi appunto commenti e campo form.
    Manca poco ce la puoi fare!
    La vita è una tempesta, ma prenderla nel culo è un lampo...

  5. #5
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Puoi fare questa modifca al codice
    Codice PHP:
    <?php if ( get_option('comment_registration') && !$user_ID ) : ?><p>
            You must be <a
                    href="<?php echo get_option('siteurl'); ?>/wp-login.php?redirect_to=<?php echo urlencode(get_permalink()); ?>">logged
                    in</a> to post a comment.
    </p><?php else : ?>
    <form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php"
            method="post" id="commentform">
    <?php if ( $user_ID ) : ?>
    <p>
                    Logged in as <a
                            href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity?></a>.
                    <a href="<?php echo wp_logout_url(get_permalink()); ?>"
                            title="Log out of this account">Log out &raquo;</a>
            </p>
    <?php else : if ( isset($formBottom) ) : ?>
    <p>
                    <input type="text" name="author" id="author"
                            value="<?php echo $comment_author?>" size="22" tabindex="1"
                            <?php if ($req) echo "aria-required='true'"?> /><label
                            for="author"><small>Name <?php if ($req) echo "(required)"?></small></label>
            </p>
            <p>
                    <input type="text" name="email" id="email"
                            value="<?php echo $comment_author_email?>" size="22"
                            tabindex="2" <?php if ($req) echo "aria-required='true'"?> /><label
                            for="email"><small>Mail (will not be published) <?php if ($req) echo "(required)"?></small></label>
            </p>
            <p>
                    <input type="text" name="url" id="url"
                            value="<?php echo $comment_author_url?>" size="22" tabindex="3" /><label
                            for="url"><small>Website</small></label>
            </p>
    <?php endif; endif; ?>
    e prima dell'inclusione in basso sempre in php metti
    Codice PHP:
    $formBottom true

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    198
    Ciao, ho apportato le modifiche, ma non cambia assolutamente nulla. Sto provando a capirci qualcosa pure io, la modifica che hai apportato tu ha un senso ma secondo me è incompleta, bisogna fare qualcosa di analogo nella parte superiore pero' che eviti di stampare i commenti, qualcosa del tipo $listcomment = false;
    ovviamente non essendo esperto la mia è solo un'opinione.
    Cmq amen, se non ci si riesce pazienza.
    La vita è una tempesta, ma prenderla nel culo è un lampo...

  7. #7
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, hai fatto correttamente le modifiche?
    mi pare sia corretto il controllo.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.