2012-04-02 115 views
3

我在wordpress.stackexchange.com上問過這個問題,但沒有回覆。WordPress - 以編程方式添加小部件

我想以編程方式將小部件添加到我的WordPress站點。我試圖從codex docs下面的代碼:

class MyNewWidget extends WP_Widget { 

    function MyNewWidget() { 
     // Instantiate the parent object 
     parent::__construct(false, 'My New Widget Title'); 
    } 

    function widget($args, $instance) { 
     // Widget output 
    } 

    function update($new_instance, $old_instance) { 
     // Save widget options 
    } 

    function form($instance) { 
     // Output admin widget options form 
    } 
} 

function myplugin_register_widgets() { 
    register_widget('MyNewWidget'); 
} 

add_action('widgets_init', 'myplugin_register_widgets'); 

但似乎並沒有工作。我甚至試過Programmatically add widgets to sidebars這個問題的代碼,但無濟於事。請告訴我,我是否錯過了一些東西。

謝謝

回答

3

我想你有構造函數錯誤。請嘗試以下操作:

<?php 

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

class MyNewWidget extends WP_Widget { 
    function __construct() { 
     $widget_ops = array('classname' => 'MyNewWidget', 'description' => __('Widget description')); 
     parent::__construct('MyNewWidget', __('Widget Name'), $widget_ops); 
    } 

    function widget($args, $instance) { 
     extract($args); 
     echo $before_widget; 

     echo $before_title . __('Widget title') . $after_title; 

     // widget logic/output 

     echo $after_widget; 
    } 

    function update($new_instance, $old_instance) { 
     // Save widget options 
    } 

    function form($instance) { 
     // Output admin widget options form 
    } 
} 

?> 

另外,還要確保你有一個說明,所有這使它成爲一個插件,並在插件管理面板激活它。

+0

Jazaakallah Sadiq,你是對的.. – 2012-04-02 14:14:00

相關問題