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-11
Widget 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 Panelal site-ului dvs - Faceți clic pe
Plugins -
Activatepluginul 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 subSidebarsauFooter - 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.
