• User Attivo

    Apri in una nuova finestra i widget

    Vorrei che cliccando su tutti i widget (in particolar modo quelli rss) l'utente visualizzasse i link in nuova finestra anziche navigare sulla finestra principale ma non so quale parte del codice php modificare.
    Grazie


  • User Attivo

    Ciao Lionard, se trovi da qualche parte la riga dove viene generato il codice è sufficente aggiugnere un target='_blank'...
    [html]
    <a href='http://linkfeedrss.it/news/' target='_blank'>news</a>
    [/html]


  • User Attivo

    Ciao, grazie della risposta, sapevo del "blank" solo che non sapevo dove aggiungerlo, adesso provo a cercare

    http://linkfeedrss.it/news/

    Non esiste quel link all'interno dei file wordpress (forse mi stavi facendo solo un esempio?) mi sai indirizzare magari in qualche cartella specifica (per restringere la ricerca).
    Grazie ancora


  • User Attivo

    All'interno del file widgets.php Ho trovato questa parte:

    <li><a href="<?php bloginfo('rss2_url'); ?>" title="<?php echo esc_attr(__('Syndicate this site using RSS 2.0')); ?>"><?php _e('Entries <abbr title="Really Simple Syndication">RSS</abbr>'); ?></a></li>
    e questa:
    <li><a href="<?php the_permalink() ?>" title="<?php echo esc_attr(get_the_title() ? get_the_title() : get_the_ID()); ?>"><?php if ( get_the_title() ) the_title(); else the_ID(); ?></a></li>

    che si trovano anche dentro default-widgets.php .
    Posso modificare qualcosa qui?
    Grazie


  • User Attivo

    La parte sopra era valida per la versione di wp antecedente la 3.0, adesso sono cambiati anche i file widgets.php e default-widgets.php.
    Eppure un modo per trovarlo ci deve essere.


  • User Attivo

    Ok trovato (forse) su default-widgets.php : (ringrazio l'autore di questo articolo utilissimo: rimuovere icona e link dal widget feedrss ).
    La parte di codice è:

    $title = apply_filters('widget_title', $title, $instance, $this->id_base);
            $url = esc_url(strip_tags($url));
            $icon = includes_url('images/rss.png');
            if ( $title )
                $title = "<a class='rsswidget' href='$url' title='" . esc_attr__( 'Syndicate this content' ) ."'><img style='border:0' width='14' height='14' src='$icon' alt='RSS' /></a> <a class='rsswidget' href='$link' title='$desc'>$title</a>";
    ```Adesso devo solo aggiungere blank, giusto?
    
    
    ps ho provato così :
    

    $title = "<a class='rsswidget' href='$url' target='_blank' title='" . esc_attr__( 'Syndicate this content' ) ."'><img style='border:0' width='14' height='14' src='$icon' alt='RSS' /></a> <a class='rsswidget' href='$link' title='$desc'>$title</a>";

    e così:
    

    $title = "<a class='rsswidget' href='$url' title='" . esc_attr__( 'Syndicate this content' ) ."'><img style='border:0' width='14' height='14' src='$icon' alt='RSS' /></a> <a class='rsswidget' href='$link' **target='_blank' **title='$desc'>$title</a>";

    in nessuno dei due modi funziona (continua ad aprirsi nella stessa pagina).
    Cosa sbaglio?
    Grazie

  • User Attivo

    Dove hai trovato il codice? Fa parte del tuo tema o stai modificando un file di Wordpress?


  • User Attivo

    Ciao, si tratta del file wordpress ( default-widgets.php ).
    Mi sai Aiutare?


  • User Attivo

    Ciao, ho risolto il problema 🙂
    Modifica solo la riga 858 del file default-widgets.php
    [php]
    echo "<li><a class='rsswidget' href='$link' target='_blank' title='$desc'>$title</a>{$date}{$summary}{$author}</li>";
    [/php]P.S. La modifica funziona, il problema è che la perderai al prossimo aggiornamento di Wordpress, in quanto il file è un file del core...
    La procedura corretta sarebbe la seguente:

    • creare nel file functions.php una classe che eredita da WP_Widget_RSS.
    • Eseguire l'ovveride del metodo wp_widget_rss_output
    • Copi tutto il codice contenuto nella funzione originale modificando solo la riga sopra indicata.
    • Registri il tuo nuovo widget tramite la funzione wp_register_sidebar_widget() chiamata all'interno del file functions.php

    Buon divertimento 😉


  • User Attivo

    Grazie (i punti 1-2-3-4 son troppo complessi)
    Funziona (non capisco perchè prima non mi andava...)! Solo che per adesso lo fà solo con il widget rss e non con tutti i widget. Non c'è una modifica da fare per tutti i widget?
    Ciao e grazie


  • User Attivo

    Prima non andava perchè modificavi il file in un alttro punto e le modifiche andavano perse per merito dei vari controlli e filtri utilizzati da Wordpress per evitare code injection e similari...
    La modifica era specifica per il widget rss, se vuoi modificare anche gli altri dovrai ripetere il procedimento modificando le funzioni wp_widget_{nome widget}_output 😉