Cum să creați un plugin WordPress cu opțiune de widget cu mai multe instanțe pentru utilizarea barei laterale sau a subsolului - Cod de plugin WordPress gata de utilizare
Publicat: 2016-05-11Widget WordPress Instanțe multiple / Widget personalizat WordPress
Crunchify a creat mai multe plugin-uri WordPress în ultimii ani. Una dintre cerințele pe care le avem pentru membrii noștri Facebook pentru plugin este să aibă multiple instance
ale aceluiași widget, deoarece utilizatorii pot dori pluginul paginii Facebook în Sidebar
și, de asemenea, în secțiunea Footer
.
În timp ce lucrăm cu numeroși clienți în ultimii ani, am creat destul de multe plugin-uri simple cu opțiune de widget cu mai multe instanțe.
În acest tutorial, vom trece peste un exemplu de cod Sample ready-to-use WordPress Plugin
, care va pune widgetul live de Facebook Page Plugin
în bara laterală și/sau subsolul blogului dvs. Simțiți-vă liber să utilizați acest cod în pluginul dvs.
Să începem:
Pasul 1
De obicei fac toată dezvoltarea Java și WordPress în Eclipse IDE. Deci, urmați tutorialul pentru a configura kitul de dezvoltare PHP în Eclipse.
Creați fișierul crunchify-plugin.php
în folderul crunchify-plugin
și puneți mai jos codul.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
<?php /* * Plugin Name: Crunchify Plugin * Plugin URI: https://crunchify.com/ * Description: The Simplest Ready to use WordPress Plugin with Multiple Instance of the same Widgets option - by Crunchify * Version: 1.0 * Author: Crunchify * Author URI: https://crunchify.com * Text Domain: crunchify-plugin */ class crunchify_widget extends WP_Widget { // Create Multiple WordPress Widgets function __construct ( ) { parent : : __construct ( 'crunchify_widget' , __ ( 'Crunchify Plugin' , 'crunchify_plugin_domain' ) , array ( 'description' = > __ ( 'Sample WordPress Plugin by Crunchify' , 'crunchify_plugin_domain' ) ) ) ; } // This function creates nice Facebook Page Like box in Header or Footer public function widget ( $args , $instance ) { $crunchify_facebook_url = apply_filters ( 'crunchify_facebook_url' , $instance [ 'crunchify_facebook_url' ] ) ; $crunchify_facebook_hidecover = $instance [ 'crunchify_facebook_hidecover' ] ? 'true' : 'false' ; $crunchify_facebook_showface = $instance [ 'crunchify_facebook_showface' ] ? 'true' : 'false' ; $facebookpage = '<div><iframe src="//www.facebook.com/plugins/page.php?href=' . $crunchify_facebook_url . '&tabs=&width=300&height=220&small_header=false&adapt_container_width=true&hide_cover=' . $crunchify_facebook_hidecover . '&show_facepile=' . $crunchify_facebook_showface . '&show_border=false&header=false" scrolling="no" frameborder="0" allowTransparency="true"></iframe></div>' ; echo $before_widget ; echo $before_title . $after_title ; echo $facebookpage ; echo $after_widget ; } // Create Instance and Assign Values public function form ( $instance ) { if ( isset ( $instance [ 'crunchify_facebook_url' ] ) ) { $crunchify_facebook_url = $instance [ 'crunchify_facebook_url' ] ; } else { $crunchify_facebook_url = __ ( 'https://facebook.com/Crunchify' , 'crunchify_plugin_domain' ) ; } $instance [ 'crunchify_facebook_hidecover' ] = $instance [ 'crunchify_facebook_hidecover' ] ? 'true' : 'false' ; $instance [ 'crunchify_facebook_showface' ] = $instance [ 'crunchify_facebook_showface' ] ? 'true' : 'false' ; ?> < ! -- This is Crunchify Widget Form -- > < p > < label for = " <?php echo $this - > get_field_id ( 'crunchify_facebook_url' ) ; ?> " > <?php _e ( 'Facebook Page URL' ) ; ?> < / label > < input class = "widefat" id = " <?php echo $this - > get_field_id ( 'crunchify_facebook_url' ) ; ?> " name = " <?php echo $this - > get_field_name ( 'crunchify_facebook_url' ) ; ?> " type = "text" value = " <?php echo esc_attr ( $crunchify_facebook_url ) ; ?> " / > < br / > < br / > < label for = " <?php echo $this - > get_field_id ( 'crunchify_facebook_hidecover' ) ; ?> " > <?php _e ( 'Hide Cover?' ) ; ?> < / label > < input class = "checkbox" type = "checkbox" <?php checked ( $instance [ 'crunchify_facebook_hidecover' ] , 'true' ) ; ?> id = " <?php echo $this - > get_field_id ( 'crunchify_facebook_hidecover' ) ; ?> " name = " <?php echo $this - > get_field_name ( 'crunchify_facebook_hidecover' ) ; ?> " / > < br / > < br / > < label for = " <?php echo $this - > get_field_id ( 'crunchify_facebook_showface' ) ; ?> " > <?php _e ( 'Show Facepile?' ) ; ?> < / label > < input class = "checkbox" type = "checkbox" <?php checked ( $instance [ 'crunchify_facebook_showface' ] , 'true' ) ; ?> id = " <?php echo $this - > get_field_id ( 'crunchify_facebook_showface' ) ; ?> " name = " <?php echo $this - > get_field_name ( 'crunchify_facebook_showface' ) ; ?> " / > < / p > <?php } // Updating widget replacing old instances with new function update ( $new_instance , $old_instance ) { $instance = array ( ) ; $instance [ 'crunchify_facebook_url' ] = ( ! empty ( $new_instance [ 'crunchify_facebook_url' ] ) ) ? strip_tags ( $new_instance [ 'crunchify_facebook_url' ] ) : '' ; $instance [ 'crunchify_facebook_hidecover' ] = $new_instance [ 'crunchify_facebook_hidecover' ] ; $instance [ 'crunchify_facebook_showface' ] = $new_instance [ 'crunchify_facebook_showface' ] ; return $instance ; } } function crunchify_plugin ( ) { register_widget ( 'crunchify_widget' ) ; } // Initialize Plugin add_action ( 'widgets_init' , 'crunchify_plugin' ) ; ?> |

Să înțelegem 4 linii evidențiate din codul de mai sus:
- funcția __construct()
- Inițializați pluginul WordPress cu Nume și Descriere
- widget de funcție publică ($args, $instance)
- Acesta este ceea ce se afișează pe blogul dvs. - scoateți conținutul widget-ului
- formularul funcției publice ($instanță)
- Aici specificați opțiunile Widget WordPress în interiorul
Appearance
->Widgets
- Aici specificați opțiunile Widget WordPress în interiorul
- actualizare funcție($new_instance, $old_instance)
- Când faceți clic pe butonul Salvare – valorile Opțiuni vor fi salvate
NOTE:
acțiunea widgets_init
va apela funcția crunchify_plugin
care registers
intern widget-ul cu numele crunchify_widget
.
Pasul 2
Creați fișierul readme.txt
în același crunchify-plugin
cu conținutul de mai jos. Simțiți-vă liber să-l actualizați în funcție de nevoile dvs.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
=== Crunchify Plugin === Contributors : Crunchify Tags : WordPress , WordPress Plugins , Crunchify , multiple widgets Requires at least : 4.3 Tested up to : 4.5.2 Stable tag : 1.0 The simplest ready to use WordPress Plugin with Multiple Instance of the same Widgets option - by Crunchify . com == Description == Sample WordPress Plugin which creates Multiple Widgets for your plugin . [ Feedback ] ( https : //crunchify.com/) | [Twitter](https://twitter.com/Crunchify) == Installation == 1. Unpack the ` download - package ` . 2. Upload the file to the ` / wp - content / plugins / ` directory . 3. Activate the plugin through the ` Plugins ` menu in WordPress . 4. Go to Appearance - > Widgets Section - > Select Plugin ` Crunchify Plugin ` . 5. Done and Ready . == Frequently Asked Questions == = FAQ1 = * Your Answer1 . = Where do I get latest updates on plugin ? = * On < a href = "http://twitter.com/Crunchify" target = "_blank" > Twitter < / a > and < a href = "http://www.facebook.com/Crunchify" target = "_blank" > Facebook < / a > . == Screenshots == 1. Screenshot1 details 2. Screenshot2 details == Changelog == = 1.0 = * Initial Working Version |
Pasul 3
Doar pentru a vă asigura că structura folderului dvs. ar trebui să arate astfel:
Puneți crunchify-plugin
sub folderul plugins
.
Pasul 4 Cum se activează?
- Accesați
Admin Panel
al site-ului dvs - Faceți clic pe
Plugins
-
Activate
pluginul Crunchify Plugin
Pasul 5 Configurați opțiunile de plugin
- Faceți clic pe
Appearance -> Widgets
- Alegeți pluginul Widget
Crunchify Plugin
și puneți-l subSidebar
sauFooter
- Actualizați opțiunile și faceți clic pe
save
Pasul 6 Cum se verifică?
Am plasat două widget-uri cu opțiuni diferite.
Ar trebui să vedeți multiple instances of same Crunchify Plugin
care emite un plugin frumos de Facebook Page Plugin
în bara laterală sau subsol conform configurației dvs.