Visualizzazione risultati 1 fino 6 di 6

Discussione: Mettere "Leggi tutto" alla fine del commento

  1. #1
    L'avatar di photoman
    photoman non è connesso AlterVistiano
    Data registrazione
    31-12-2003
    Messaggi
    842

    Predefinito Mettere "Leggi tutto" alla fine del commento

    Ho questo codice che mette i commenti che scrivono i visitatori del mio blog

    Codice PHP:
    public static function get_comment_format$date true$comment true$post_link true$avatar false ) {
           
    $format '';
    ...
     if ( 
    $comment ) {
               
    $format .= '<span style="color:#808080; font-size:0.95em; font-style:italic;">&ldquo;{comment}&rdquo;</span>';
           }
      return 
    $format;
       } 

    Io ci devo aggiungere questo "Leggi tutto" alla fine del commento {comment}

    Codice PHP:
    return '<a class="leggiTutto" href="'get_permalink($post->ID) . '">...Leggi tutto</a>'
    Ultima modifica di photoman : 25-02-2017 alle ore 15.38.05

  2. #2
    zyro non è connesso Utente
    Data registrazione
    08-05-2010
    Messaggi
    105

    Predefinito

    Magari così?
    Codice PHP:
    public static function get_comment_format$date true$comment true$post_link true$avatar false ) {
           
    $format '';
    ...
     if ( 
    $comment ) {
               
    $format .= '<span style="color:#808080; font-size:0.95em; font-style:italic;">&ldquo;{comment}&rdquo;</span>';
               
    $format .= '<a class="leggiTutto" href="'get_permalink($post->ID) . '">...Leggi tutto</a>';  
           }
      return 
    $format;
       } 
    Un'aggiunta intelligente può essere strlen() al tuo codice per controllare se al commento sia realmente necessario aggiungere tale pulsante

  3. #3
    L'avatar di photoman
    photoman non è connesso AlterVistiano
    Data registrazione
    31-12-2003
    Messaggi
    842

    Predefinito

    in parte funziona, ma quando clicco su "...Leggi tutto" mi apre la pagina dell'articolo invece che l'area del commento. Eppoi "...Leggi tutto" lo mette alla fine di tutti i commenti e non solo a quelli lunghi. strlen()

    Se invece clicco sul nome dell'articolo, si apre il commento completo.
    Forse c'è questa parte da cambiare . get_permalink($post->ID) .



    Questa è la parte di codice:

    Codice PHP:
    ...
    class 
    Better_Recent_Comments_Util {
        
        public static function 
    default_shortcode_args() {
            return array(
                
    'number' => 5,
                
    'format' => self::get_comment_format(),
                
    'date_format' => 'j M Y, H:i',
                
    'avatar_size' => 50,
                
    'post_status' => 'publish',
                
    'excerpts' => true
            
    );
        }
                
        public static function 
    get_comment_format$date true$comment true$post_link true$avatar false ) {        
            
    $format '';
            
            if ( 
    $avatar ) {
                
    $format .= '{avatar} ';
            }
            if ( 
    $post_link ) {
                
    //* translators: comments widget: 1: comment author, 2: post link */
                
    $format .= sprintf_x'<div style="color: #004080; margin:5px 0 0 5px;">%1$s <br> %2$s</div>''recent comment''better-recent-comments' ), '{author}''{post}' );
            } else {
                
    $format .= '{author}';
            }
            if ( 
    $comment ) {
               
    $format .= '<span style="font-style:italic; color: #808080;">&ldquo;{comment}&rdquo;</span>';
               
    $format .= '<a class="leggiTutto" href="'get_permalink($post->ID) . '">...Leggi tutto</a>';   
           }
           if ( 
    $date ) {
               
    $format .= ' <br><span style="color:#888;">{date}</span>';
           }

           return 
    $format
       }
    ... 
    Ultima modifica di photoman : 16-03-2017 alle ore 22.28.31

  4. #4
    zyro non è connesso Utente
    Data registrazione
    08-05-2010
    Messaggi
    105

    Predefinito

    In questo caso php non ti serve a nulla allora, per effettuare un'azione su una pagina senza cambiarla devi usare javascript o simili.

    In questo momento non posso aiutarti, magari nel pomeriggio, ma puoi già effettuare qualche ricerca in autonomia con "javascript script leggi tutto", dovrebbe già usciti il mondo

  5. #5
    L'avatar di photoman
    photoman non è connesso AlterVistiano
    Data registrazione
    31-12-2003
    Messaggi
    842

    Predefinito

    Forse non mi sono spiegato io: quando clicco su "...Leggi tutto" non deve aprirsi tutto il commento a tendina, in questo caso andrebbe bene jQuery.
    Nel mio caso, il link "...Leggi Tutto" deve portare alla pagina dell'articolo che nel mio screen è Riscattare la vita e nello stesso tempo al commento che c'è in quella pagina.

    Col codice originale questo succede solo se clicco sul link Riscattare la vita, io vorrei invece che succeda anche cliccando su "...Leggi Tutto".

    Puoi fare una prova nel mio sito, inserisci un commento di prova www.albenessereblog.altervista.org

    Questa è tutta la pagina:

    Codice PHP:
    <?php
    /**
     * This class provides utility functions for the Better Recent Comments plugin.
     *
     * @package   Better_Recent_Comments
     * @author    Andrew Keith <andy@barn2.co.uk>
     * @license   GPL-2.0+
     * @link      http://barn2.co.uk
     * @copyright 2016 Barn2 Media
     */

    // Prevent direct file access
    if ( ! defined 'ABSPATH' ) ) {
        exit;
    }

    class 
    Better_Recent_Comments_Util {
        
        public static function 
    default_shortcode_args() {
            return array(
                
    'number' => 5,
                
    'format' => self::get_comment_format(),
                
    'date_format' => 'j M Y, H:i',
                
    'avatar_size' => 50,
                
    'post_status' => 'publish',
                
    'excerpts' => true
            
    );
        }
                
        public static function 
    get_comment_format$date true$comment true$post_link true$avatar false ) {        
            
    $format '';
            
            if ( 
    $avatar ) {
                
    $format .= '{avatar} ';
            }
            if ( 
    $post_link ) {
                
    //* translators: comments widget: 1: comment author, 2: post link */
                
    $format .= sprintf_x'<div style="color: #004080; margin:5px 0 0 5px;">%1$s <br> %2$s</div>''recent comment''better-recent-comments' ), '{author}''{post}' );
            } else {
                
    $format .= '{author}';
            }
            if ( 
    $comment ) {
               
    $format .= '<span style="font-style:italic; color: #808080;">&ldquo;{comment}&rdquo;</span>';
           }
           if ( 
    $date ) {
               
    $format .= ' <br><span style="color:#888;">{date}</span>';
           }

           return 
    $format
       }
        
        public static function 
    get_recent_comments$args ) {
            
            
    $defaults self::default_shortcode_args();
            
            
    // Sanitize post status used to retrieve comments
            
    $post_status = array( 'publish' );
            
            if ( !empty( 
    $args['post_status'] ) ) {
                
    $post_status array_filterarray_map'sanitize_key'explode(','$args['post_status'] ) ) );
            }
            
            
    // Get all published posts & pages in the current language
            
    $posts_current_lang get_posts( array(
                
    'post_type' => array( 'post''page' ),
                
    'posts_per_page' => 500,
                
    'post_status' => $post_status,
                
    'fields' => 'ids',
                
    'suppress_filters' => false // Ensure WPML filters run on this query
            
    ) );

            
    $number = empty( $args['number'] ) ? false filter_var$args['number'], FILTER_VALIDATE_INT );
            if ( !
    $number ) {
                
    $number $defaults['number'];
            }

            
    // Get recent comments limited to post IDs above
            
    $comments get_comments( array(
                
    'number' => $number,
                
    'status' => 'approve',
                
    'type' => apply_filters'better_recent_comments_comment_type''comment' ),
                
    'post__in' => $posts_current_lang
            
    ) );

            
    $output $comment_item_style '';
            
    $comments_list_class 'recent-comments-list';        
            
    // Use .recentcomments class on li's to match WP_Recent_Comments widget        
            
    $comment_li_fmt '<li class="recentcomments recent-comment"><div class="comment-wrap"%s>%s</div></li>';
            
            if ( 
    is_array$comments ) && $comments ) {
                
    // Prime cache for associated posts. (Prime post term cache if we need it for permalinks.)
                
    $post_ids array_uniquewp_list_pluck$comments'comment_post_ID' ) );
                
    _prime_post_caches$post_idsstrposget_option'permalink_structure' ), '%category%' ), false );

                
    $format = empty( $args['format'] ) ? self::get_comment_format() : $args['format'];        
                
    $date_format = empty( $args['date_format'] ) ? $defaults['date_format'] : $args['date_format'];            

                
    $link_from self::comment_link_from$format );
                
    $excerpts = isset( $args['excerpts'] ) ? filter_var$args['excerpts'], FILTER_VALIDATE_BOOLEAN ) : $defaults['excerpts'];            
                
    $avatar_size = empty( $args['avatar_size'] ) ? false filter_var$args['avatar_size'], FILTER_VALIDATE_INT );

                if ( !
    $avatar_size ) {
                    
    $avatar_size $defaults['avatar_size'];
                }   

                if ( 
    strpos$format'{avatar}' ) !== false ) { 
                    
    $comments_list_class .= ' with-avatars';
                    
    $comment_item_style sprintf' style="padding-left:%1$upx; min-height:%2$upx;"'round$avatar_size + ($avatar_size 4) ), $avatar_size );
                }                

                foreach ( (array) 
    $comments as $comment ) {                
                    
    $link_fmt '<a href="' esc_urlget_comment_link$comment->comment_ID ) ) . '">%s</a>';

                    
    $avatar get_avatar$comment$avatar_size );
                    
    $author get_comment_author_link$comment->comment_ID );
                    
    $date get_comment_date$date_format$comment->comment_ID );
                    
    $post get_the_title$comment->comment_post_ID );

                    if ( 
    $excerpts ) {
                        
    $comment_text get_comment_excerpt$comment->comment_ID );
                    } else {
                        
    $comment_text strip_tagsstr_replace( array( "\n""\r" ), ' '$comment->comment_content ) );
                    }
                    
                    if ( 
    'post' === $link_from ) {
                        
    $post sprintf$link_fmt$post );
                    } elseif ( 
    'date' === $link_from ) {
                        
    $date sprintf$link_fmt$date );
                    } elseif ( 
    'comment' === $link_from ) {
                        
    $comment_text sprintf$link_fmt$comment_text );
                    }

                    
    $comment_content str_replace(
                        array( 
    '{avatar}''{author}''{comment}''{date}''{post}' ),
                        array(
                            
    '<span class="comment-avatar">' $avatar '</span>',
                            
    '<span class="comment-author-link">' $author '</span>',
                            
    '<span class="comment-excerpt">' $comment_text '</span>',
                            
    '<span class="comment-date">' $date '</span>',
                            
    '<span class="comment-post">' $post '</span>'
                        
    ),
                        
    $format 
                    
    );
                    
                    
    $output .= sprintf$comment_li_fmt$comment_item_style$comment_content );
                } 
    // foreach comment

            
    } else {
                
    $output sprintf$comment_li_fmt''__'<ul><li>Non ci sono commenti</li></ul>''better-recent-comments' ) );
            } 
    // if comments
            
            
    return apply_filters'better_recent_comments_list'sprintf'<ul id="better-recent-comments" class="%s">%s</ul>'$comments_list_class$output ) );

        } 
    // get_comments_list    
        
        
    private static function comment_link_from$format ) {
            
    $link_from 'post';
            if ( 
    false === strpos$format'post') ) {                
                
    $link_from 'date';
                if ( 
    false === strpos$format'date') ) {
                    
    $link_from 'comment';
                }
            }
            return 
    $link_from;
        }

    // end class Better_Recent_Comments_Util
    Ultima modifica di photoman : 17-03-2017 alle ore 19.49.08

  6. #6
    zyro non è connesso Utente
    Data registrazione
    08-05-2010
    Messaggi
    105

    Predefinito

    Per sbaglio ho cancellato il mio post. Lo riscrivo.
    Prova a scrivere da qualche parte nel sito
    Codice PHP:
    echo get_permalink($post->ID); 
    per vedere cosa ti recupera di preciso.
    Comunque se ho capito bene tu vuoi aprire in una nuova pagina l'articolo con solo il commento selezionato per esteso. per fare ciò hai bisogno di recuperare l'ID del messaggio e aggiungerlo di seguito al link dell'articolo, poi nella apgina che aprirà controlli se esiste quel valore, in caso esista raccogli dal DB solo quel commento per intero, altrimenti puoi recuperarli tutti.
    Se mi posti la echo del link dell'articolo ti faccio un esempio in caso non hai capito

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •