예제 #1
0
 /**
  * validate_part_parameter
  * Check to see if the paramter passes validation.
  *
  * @param string $parts The parameter name.
  * @param mixes $parts The parameter value.
  *
  * @access public
  * @static
  * @since 1.0
  */
 public static function validate_part_parameter($parameter, $value)
 {
     global $post, $pagenow, $current_screen;
     switch ($parameter) {
         case 'capability':
             return piklist_user::current_user_can($value);
             break;
         case 'role':
             return piklist_user::current_user_role($value);
             break;
         case 'logged_in':
             return $value == 'true' ? is_user_logged_in() : true;
             break;
         case 'post_type':
             return $post && in_array($post->post_type, $value) || !$post;
             break;
         case 'status':
         case 'post_status':
             return $post && in_array($post->post_status, $value) || !$post;
             break;
         case 'new':
             return $value == 'true' ? $pagenow == 'post-new.php' : true;
             break;
         case 'page':
             $current = array($pagenow);
             if (!empty($current_screen->id)) {
                 array_push($current, $current_screen->id);
             }
             if (!empty($_REQUEST['page'])) {
                 array_push($current, $_REQUEST['page']);
             }
             return array_intersect($value, $current);
             break;
         case 'id':
             return $post && in_array($post->ID, $value);
             break;
         case 'template':
             $page_template = $post->post_status == 'auto-draft' ? 'default' : strtolower(str_replace('.php', '', get_post_meta($post->ID, '_wp_page_template', true)));
             return in_array($page_template, $value);
             break;
         case 'post_format':
             $format = get_post_format($post->ID);
             $format = empty($format) ? 'standard' : $format;
             return in_array($format, $value);
             break;
         case 'network':
             if (isset($current_screen) && $current_screen->id == 'dashboard-network') {
                 return $value || $value == 'only';
             } elseif (isset($current_screen) && $current_screen->id == 'dashboard') {
                 return $value === true;
             }
             break;
         default:
             /**
              * piklist_validate_part_parameter
              * Add custom part parameters to check.
              *
              * @param $parameter Parameter to check.
              * @param $value Value to compare.
              *
              * @since 1.0
              */
             return apply_filters('piklist_validate_part_parameter', true, $parameter, $value);
             break;
     }
 }
예제 #2
0
 /**
  * validate_field_parameter
  * Check to see if the field parameter passes validation.
  *
  * @param string $parts The parameter name.
  * @param mixes $parts The parameter value.
  *
  * @access public
  * @static
  * @since 1.0
  */
 public static function validate_field_parameter($parameter, $value)
 {
     global $post, $pagenow, $current_screen;
     switch ($parameter) {
         case 'capability':
             return piklist_user::current_user_can($value);
             break;
         case 'role':
             return piklist_user::current_user_role($value);
             break;
         case 'logged_in':
             return $value === true ? is_user_logged_in() : true;
             break;
         default:
             /**
              * piklist_validate_field_parameter
              * Add custom part parameters to check.
              *
              * @param $parameter Parameter to check.
              * @param $value Value to compare.
              *
              * @since 1.0
              */
             return apply_filters('piklist_validate_field_parameter', true, $parameter, $value);
             break;
     }
 }