WordPress: tworzenie widgetu w pluginie

Autor: Rafal Marguzewicz
Opublikowany:
Kategorie: Wordpress
Tagi:


wordpress logoJeżeli mamy już stworzoną podstawą wersję pluginu do WordPress. Możemy przystąpić do rozszerzania możliwości pluginu o automatyczne ładowanie klasy widzetu (widget) Zamiast tworzenia widgetu w plugine, można go dołączyć do templatki za pomocą funkcji register_widget()/add_action() w pliku functions.php. Jednak w tym artykule przedstawię moim zdaniem bardziej praktyczne rozwiązanie. Więc możemy zacząć.


Modyfikujemy plik wp-plugin.test.php i wklejamy ctrl + V

<?php
/* 
	Plugin Name: WordPress plugin
	Version: 0.1 
	Description: Tworzenie pluginu do wordpress
	Author: Rafal Marguzewicz
	Author URI: https://pceuropa.net
	Plugin URI: https://pceuropa.net 
*/ 

class class_pceuropa_widget extends WP_Widget {

	function __construct() {
		parent::__construct(
		// id widget
		'pceuropa_widget', 

		//  Widget name
		__('PCEUROPA Widget', 'pceuropa'), 

		// Widget description
		array( 'description' => __( 'Sample widget based on PCEUROPA Tutorial', 'pceuropa' ), ) 
		);
	}
// funkcja wyświetlająca widget ma frontend
	public function widget( $args, $instance ) {
		$title = apply_filters( 'widget_title', $instance['title'] );
		echo $args['before_widget'];
		if ( ! empty( $title ) )
		echo $args['before_title'] . $title . $args['after_title'];

		echo __( 'Pierwszy widget w WordPress', 'pceuropa' );
		echo $args['after_widget'];
	}
		
// funkcja wyświetlająca opcje widgetu w panelu (backend)
	public function form( $instance ) {
		if ( isset( $instance[ 'title' ] ) ) {
			$title = $instance[ 'title' ];
		} else {
			$title = '';
		}
		
		?>
		<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?></label> 
			<input 	class="widefat" 
					id="<?php echo $this->get_field_id( 'title' ); ?>" 
					name="<?php echo $this->get_field_name( 'title' ); ?>" 
					type="text" value="<?php echo esc_attr( $title ); ?>" 
			/>
		<?php 
	}
	
	// funkcja odpowiedzialna za aktualizacje danych przychodzących z panelu widzetow
	public function update( $new_instance, $old_instance ) {
		$instance = array();
		$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';
		return $instance;
	}
} 

// Inicializacja funkcji 
function init_widget() {
	register_widget( 'class_pceuropa_widget' );
}
add_action( 'widgets_init', 'init_widget' );

Zapisujemy i uruchamiamy plugin w stronie pluginów, następnie przechodzimy do sekcji widget’ów i dostępnych widzetach powinien być ten który stworzyliśmy.
ui wordpress widgets

Również frontendowa część widgetu powinna być dostępna. W razie problemów można w pliku konfiguracyjnym ustawić pokazywanie błędów.

define('WP_DEBUG', true);

Ok możemy przejść do tworzenia jakiegoś przydatnego widgetu do WordPress.

WordPress: tworzenie widgetu w pluginie
5 / 1 vote


Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Nazwa *
E-mail *

Przeczytaj poprzedni wpis:
WordPress: tworzenie pluginu

W katalogu wp-content/plugins/ tworzymy folder plugin-test. A w nim plik wp-plugin-test.php

Zamknij