- Home
- Categorie
- Coding e Sistemistica
- WordPress
- Apri in una nuova finestra i widget
-
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
-
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]
-
Ciao, grazie della risposta, sapevo del "blank" solo che non sapevo dove aggiungerlo, adesso provo a cercare
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
-
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
-
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.
-
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
-
Dove hai trovato il codice? Fa parte del tuo tema o stai modificando un file di Wordpress?
-
Ciao, si tratta del file wordpress ( default-widgets.php ).
Mi sai Aiutare?
-
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
-
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
-
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