Cum pot adăuga linkuri în titlurile widget-urilor?
Folosesc trei widget-uri, două dintre ele sunt widget-uri standard WordPress (Postări Recente și Arhive) iar al treilea este un widget personalizat care funcționează similar cu Postări Recente dar pentru un anumit tip de Postare Personalizată.
Întrebarea mea este cum pot face titlurile widget-urilor să fie linkuri clickabile? Se pare că WordPress nu acceptă HTML în câmpul de titlu și îl elimină automat. Ideal, aș dori să fac acest lucru fără un plugin, deși știu că există soluții precum Linkable Title HTML and PHP Widget. Dar nu este exact ceea ce caut.
Codul pentru widget-ul personalizat pe care îl am până acum poate fi văzut aici: http://pastie.org/1847651

Făcând titlul clickabil
WordPress nu permite transmiterea codului HTML în titlul widget-ului, dar are parametrii utili $before_title
și $after_title
pe care îi poți folosi pentru a manipula lucrurile.
În widget-ul tău, adaugă prima parte a link-ului (<a href="...">
) la sfârșitul lui $before_title
și ultima parte a link-ului (</a>
) la începutul lui $after_title
, iar titlul tău va fi automat legat.
Facii asta după ce extragi argumentele în metoda widget()
... deci în codul tău, găsește secțiunea:
ob_start();
extract($args);
$title = apply_filters('widget_title', empty($instance['title']) ? __('Știri Recente ale Personalului') : $instance['title'], $instance, $this->id_base);
Și adaugă:
$before_title .= '<a href="http://something.com">';
$after_title = '</a>' . $after_title;
Și vei avea titlul legat!
Modificarea widget-urilor implicite
Nu poți aplica această metodă direct widget-urilor implicite, dar există o soluție folosind moștenirea obiectelor. Pur și simplu definești propriile widget-uri personalizate care extind widget-urile implicite:
class My_Widget_Recent_Posts extends WP_Widget_Recent_Posts {
}
Va trebui să redefinești numele widget-ului și altele în constructor, apoi să redefinesti metoda widget()
copiind ce este deja acolo dar aplicând hack-ul nostru cu $before_title
/$after_title
de mai sus. Noua versiune a widget-ului implicit va avea titluri clickabile!

Este minunat, exact ce căutam! Am reușit să fac widget-ul meu personalizat de Post Types să funcționeze cu titlul clickabil, dar când vine vorba de extinderea widget-ului implicit Recent Posts, nu sunt încă acolo. Am extins clasa implicită și am înregistrat noul widget, dar nu apare în panoul meu de widget-uri. Codul pe care l-am adăugat în fișierul functions.php este: http://pastie.org/1848212

Poți să vezi unde greșesc în extinderea clasei implicite de widget? Am extins clasa, am redenumit widget-ul în constructor și am copiat conținutul din widget-ul implicit Recent Posts. Nu primesc erori, dar nu apare în panoul de Widget-uri. De asemenea, am înregistrat noul widget.

Dacă widget-urile implicite nu oferă funcționalitatea pe care o căutați, în special permisiunea de a adăuga link-uri personalizate pe titluri, cel mai bine ar fi să vă creați propriile widget-uri.
http://justintadlock.com/archives/2009/05/26/the-complete-guide-to-creating-widgets-in-wordpress-28
http://churchco.de/the-complete-guide-to-writing-a-wordpress-widget/
De obicei, acest lucru presupune scrierea unui plugin care adaugă widget-uri personalizate în ecranul de widget-uri. A face o mică modificare la un widget existent este la fel de simplu ca a copia codul original și a-l include într-un mod modificat într-un plugin.
Widget-urile implicite se găsesc în wp-includes/default-widgets.php
Editare Dacă nu sunteți familiarizat cu codul WordPress, trebuie să decideți dacă doriți să vă familiarizați mai mult. Dacă da, trebuie să adăugați un câmp în formularul widget-ului care să permită utilizatorului să introducă adresa link-ului și să editați codul widget-ului pentru a insera link-ul când codul widget-ului afișează titlul.
Dacă nu doriți să vă familiarizați, atunci cred că nu aveți noroc. Widget-urile nu vin cu capacitatea de a-și modifica capacitățile fără a modifica codul WordPress.

Am creat un widget după acest exemplu, dar nu sunt suficient de familiarizat cu codul WordPress pentru a ști cum să-l modific pentru a avea un titlu pe care se poate face clic. Aveți sugestii?

Tocmai am lansat un plugin care permite oricui să adauge un link în setările widget-urilor. Funcționează cu majoritatea plugin-urilor. Obține-l aici: http://wordpress.org/extend/plugins/widget-title-links/

De fapt, POȚI introduce HTML direct în antet. Cu puțin cod suplimentar. Consultă acest articol care îți arată cum:
http://ponderwell.net/2011/05/how-to-use-html-in-wordpresss-widgets-title/

Bine ați venit pe WordPress Stack Exchange, Alfred! Avem un FAQ util aici: Un răspuns ar trebui să fie mai mult decât doar puțin mai mult decât un link către un site extern. Ai putea adăuga o explicație de bază la răspunsul tău?
