mirror of
https://github.com/kennethreitz-archive/wordpress-skeleton.git
synced 2026-06-05 23:50:19 +00:00
169 lines
3.3 KiB
PHP
169 lines
3.3 KiB
PHP
<?php
|
|
|
|
class scbUtil {
|
|
// Force script enqueue
|
|
static function do_scripts($handles) {
|
|
global $wp_scripts;
|
|
|
|
if ( ! is_a($wp_scripts, 'WP_Scripts') )
|
|
$wp_scripts = new WP_Scripts();
|
|
|
|
$wp_scripts->do_items((array) $handles);
|
|
}
|
|
|
|
// Force style enqueue
|
|
static function do_styles($handles) {
|
|
self::do_scripts('jquery');
|
|
|
|
global $wp_styles;
|
|
|
|
if ( ! is_a($wp_styles, 'WP_Styles') )
|
|
$wp_styles = new WP_Styles();
|
|
|
|
ob_start();
|
|
$wp_styles->do_items((array) $handles);
|
|
$content = str_replace(array('"', "\n"), array("'", ''), ob_get_clean());
|
|
|
|
echo "<script type='text/javascript'>\n";
|
|
echo "jQuery(document).ready(function($) {\n";
|
|
echo "$('head').prepend(\"$content\");\n";
|
|
echo "});\n";
|
|
echo "</script>";
|
|
}
|
|
|
|
// Extract $keys from $array
|
|
static function array_extract($array, $keys) {
|
|
$r = array();
|
|
foreach ( $keys as $key )
|
|
if ( array_key_exists($key, $array) )
|
|
$r[$key] = $array[$key];
|
|
|
|
return $r;
|
|
}
|
|
|
|
// Prepare an array for an IN statement
|
|
static function array_to_sql($values) {
|
|
foreach ( $values as &$val )
|
|
$val = "'" . esc_sql(trim($val)) . "'";
|
|
|
|
return implode(',', $values);
|
|
}
|
|
|
|
// Have more than one uninstall hooks; also prevents an UPDATE query on each page load
|
|
static function add_uninstall_hook($plugin, $callback) {
|
|
register_uninstall_hook($plugin, '__return_false'); // dummy
|
|
|
|
add_action('uninstall_' . plugin_basename($plugin), $callback);
|
|
}
|
|
}
|
|
|
|
|
|
// _____Simple debug utility_____
|
|
|
|
if ( ! class_exists('scbDebug') ):
|
|
class scbDebug {
|
|
private $args;
|
|
|
|
function __construct($args) {
|
|
$this->args = $args;
|
|
|
|
register_shutdown_function(array($this, '_delayed'));
|
|
}
|
|
|
|
function _delayed() {
|
|
if ( !current_user_can('administrator') )
|
|
return;
|
|
|
|
$this->raw($this->args);
|
|
}
|
|
|
|
static function raw($args) {
|
|
echo "<pre>";
|
|
foreach ( $args as $arg )
|
|
if ( is_array($arg) || is_object($arg) )
|
|
print_r($arg);
|
|
else
|
|
var_dump($arg);
|
|
echo "</pre>";
|
|
}
|
|
}
|
|
endif;
|
|
|
|
if ( ! function_exists('debug') ):
|
|
function debug() {
|
|
$args = func_get_args();
|
|
|
|
// integrate with FirePHP
|
|
if ( class_exists('FirePHP') ) {
|
|
$firephp = FirePHP::getInstance(true);
|
|
$firephp->group('debug');
|
|
foreach ( $args as $arg )
|
|
$firephp->log($arg);
|
|
$firephp->groupEnd();
|
|
|
|
return;
|
|
}
|
|
|
|
new scbDebug($args);
|
|
}
|
|
endif;
|
|
|
|
if ( ! function_exists('debug_raw') ):
|
|
function debug_raw() {
|
|
$args = func_get_args();
|
|
|
|
scbDebug::raw($args);
|
|
}
|
|
endif;
|
|
|
|
|
|
// _____Minimalist HTML framework_____
|
|
|
|
if ( ! function_exists('html') ):
|
|
function html($tag, $content = '') {
|
|
list($closing) = explode(' ', $tag, 2);
|
|
|
|
return "<{$tag}>{$content}</{$closing}>";
|
|
}
|
|
endif;
|
|
|
|
// Generate an <a> tag
|
|
if ( ! function_exists('html_link') ):
|
|
function html_link($url, $title = '') {
|
|
if ( empty($title) )
|
|
$title = $url;
|
|
|
|
return sprintf("<a href='%s'>%s</a>", $url, $title);
|
|
}
|
|
endif;
|
|
|
|
|
|
// _____Compatibility layer_____
|
|
|
|
// WP < 3.0
|
|
if ( ! function_exists('__return_false') ) :
|
|
function __return_false() {
|
|
return false;
|
|
}
|
|
endif;
|
|
|
|
// WP < ?
|
|
if ( ! function_exists('__return_true') ) :
|
|
function __return_true() {
|
|
return true;
|
|
}
|
|
endif;
|
|
|
|
// WP < ?
|
|
if ( ! function_exists('set_post_field') ) :
|
|
function set_post_field($field, $value, $post_id) {
|
|
global $wpdb;
|
|
|
|
$post_id = absint($post_id);
|
|
$value = sanitize_post_field($field, $value, $post_id, 'db');
|
|
|
|
return $wpdb->update($wpdb->posts, array($field => $value), array('ID' => $post_id));
|
|
}
|
|
endif;
|
|
|