Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class RandomEvent extends WP_Widget {
- public function __construct() {
- // Instantiate the parent object
- parent::__construct(
- 'random-event', // Base ID
- 'Random Event', // Name
- array(
- 'classname' => 'widget--random-event',
- 'description' => 'Shows a random event'
- ) // Args
- );
- }
- public function widget( $args, $instance ) {
- // get a random event
- $random_args = array(
- 'post_type' => 'event',
- 'orderby' => 'rand',
- 'posts_per_page' => 1,
- );
- $random_event = get_posts( $random_args );
- // Widget output
- extract( $args );
- $rew_widgettitle = apply_filters( 'widget_title', $instance['rew_widgettitle'] );
- if ( !$rew_widgettitle ) {
- $rew_widgettitle = 'Random event';
- }
- echo $before_widget;
- echo $before_title . $rew_widgettitle . $after_title;
- if ( $random_event ) {
- foreach( $random_event as $event ) {
- echo '<a href="' . get_the_permalink( $event->ID ) . '">' . get_the_title( $event->ID ) . '</a>';
- }
- }
- echo $after_widget;
- }
- public function update( $new_instance, $old_instance ) {
- // Save widget options
- $instance = $old_instance;
- $instance['rew_widgettitle'] = strip_tags($new_instance['rew_widgettitle']);
- return $instance;
- }
- public function form( $instance ) {
- // Output admin widget options form
- $rew_widgettitle = ! empty( $instance['rew_widgettitle'] ) ? $instance['rew_widgettitle'] : esc_html__( 'Random event', 'text_domain' );
- ?>
- <p>
- <label for="<?php echo $this->get_field_id('rew_widgettitle'); ?>">Widget title:</label>
- <input class="widefat" id="<?php echo $this->get_field_id('rew_widgettitle'); ?>" name="<?php echo $this->get_field_name('rew_widgettitle'); ?>" type="text" value="<?php if ( $rew_widgettitle ) { echo $rew_widgettitle; } ?>" />
- </p>
- <?php }
- }
- function register_my_widgets() {
- if ( function_exists( 'em_content' ) ) {
- register_widget( 'RandomEvent' );
- }
- }
- add_action( 'widgets_init', 'register_my_widgets' );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement