Saját custom widget szerkesztése

Elmondom, mit szeretnék.











Szeretnék egy saját widgetet szerkeszteni, ami megjelenik a default widget listában, és bele tudom irni pl. egy cbox-os chat kódját, úgy hogy elég legyen csak behúzni a sidebarba, hogy a felhasználóknak ne legyen semmi tennivalójuk ezen kivül, mert egy gyerekeknek-kamaszoknak készülő oldalra tervezem.











Tudom, hogy a legegyszerűbb lenne a cset kódját beiratni velük egy sima szöveges widgetbe, próbáltam is, de a 10-12 évesek egyenlőre nem nagyon hajlandóak erre, jobban szeretnek csak widgeteket húzgálni és kész :slight_smile:











Pár hónapja olvastam is valahol a saját widget szerkesztéséről. Ha jól emlékszem, talán épp innen a fórumról kiindulva. (nem tudom már, hogy magyar vagy angol volt a leirás …) Három napja próbálom keresni itt, a dokumentációban, a codexben, a google-ban, de vérizzadás ellenére sem találom meg …











Tud-e valaki legalább valami olvasnivaló ötlettel segiteni? Előre is köszönök mindent!!

Tovább túrkáltam és sikerült egy megoldást találnom.











A wp-includes/widget.php legaljára ezt a kódot irtam be:









Code:



/**

* VChattWidget Class

*/

class VChattWidget extends WP_Widget {

/** constructor */

function VChattWidget() {

parent::WP_Widget(false, $name = 'VChattWidget');

}



/** @see WP_Widget::widget */

function widget($args, $instance) {

extract( $args );

$title = apply_filters('widget_title', $instance['title']);

?>



<?php if ( $title )

echo $before_title . $title . $after_title; ?>



Hello World!



Varnyu első saját widgetje





<?php

}



/** @see WP_Widget::update */

function update($new_instance, $old_instance) {

$instance = $old_instance;

$instance['title'] = strip_tags($new_instance['title']);

return $instance;

}



/** @see WP_Widget::form */

function form($instance) {

$title = esc_attr($instance['title']);

?>

<label for="get_field_id('title'); ?>"> <input class="widefat" id="get_field_id('title'); ?>" name="get_field_name('title'); ?>" type="text" value="" />



<?php

}



} // class VChattWidget



// register VChattWidget widget

add_action('widgets_init', create_function('', 'return register_widget("VChattWidget");'));










A varnyu első saját widgetje szöveg helyén van az embed kódos chat kódja. Próbáltam a saját widgetet duplikálni is, az is sikerült.





A megoldás feltalálási helye: http://codex.wordpress.org/Widgets_API Developing Widgets on 2.8+





Ez most egy sima WP-n minden általam használt témával működik.





A következő feladat: hogy a fenében fogom ugyanezt megcsinálni egy MU-ban?? :unsure:





Na, majd mesélek. Vagy a sikerről, vagy a fatal errorról :D

Újabb fejlemények:











MU alatt is működik, Buddypress-szel együtt.











Most lehet nekem itthon örömködni :smiley: