PHP Classes

File: todo/includes/todo-list-shortcode.php

Recommend this page to a friend!
  Classes of Hillary Kollan   My WordPress Plugin List   todo/includes/todo-list-shortcode.php   Download  
File: todo/includes/todo-list-shortcode.php
Role: Example script
Content type: text/plain
Description: Example script
Class: My WordPress Plugin List
WordPress plugins for several purposes
Author: By
Last change:
Date: 1 year ago
Size: 2,159 bytes
 

Contents

Class file image Download
<?php


/**
 * Shortcode for listing todos
 *
 * @param [type] $atts
 * @param [type] $content
 * @return void
 */
function td_list_todos($atts, $content = null){
    global
$post;
   
//creating attributes and defaults
   
$atts = shortcode_atts([
       
'title' => 'AppsMo Todos',
       
'count' => 10,
       
'category' => 'all'
   
], $atts);
       
//check category query
   
if($atts['category'] == "all"){
       
$terms = '';
    }else{
       
$terms = [
            [
               
'taxonomy' => 'category',
               
'field' => 'slug',
               
'terms' => $atts['category']
            ]
        ];
    }


   
//args
   
$args = [
       
'post_type' => 'todo',
       
'post_status' => 'publish',
       
'orderBy' => 'due_date',
       
'order' => 'ASC',
       
'post_per_page' => $atts['count'],
       
'tax_query' => $terms
   
];

   
// get all todos
   
$todos = new WP_Query($args);
   
//check for todos
   
if($todos->have_posts()){
       
//get category slug
       
$category = str_replace('-', ' ', $atts['category']);
       
$category = strtolower($category);

       
//build output variable
       
$output .= '<div class="todo-list">';
        while(
$todos->have_posts()){
           
$todos->the_post();

           
//Get Field values
           
$priority = get_post_meta($post->ID, 'priority', true);
           
$details = get_post_meta($post->ID, 'details', true);
           
$due_date = get_post_meta($post->ID, 'due_date', true);

           
$output .= '<div class="todo">';
           
$output .= '<h4>'.get_the_title().'</h4>';
           
$output .= '<div>'.$details.'</div>';
           
$output .= '<div class="priority-'.strtolower($priority).'">Priority: '.$priority.'</div>';
           
$output.= '<div class="due_date">Due Date: '.$due_date.'</div>';
           
$output .= '</div>';
        }
       
$output .= '<div><br>';

       
//Reset Post Data
       
wp_reset_postdata();
        return
$output;
    }else{
        return
'<p>No Todos</p>';
    }
}


//cast shortcode
add_shortcode('todos', 'td_list_todos');