本文整理汇总了PHP中next_widget_id_number函数的典型用法代码示例。如果您正苦于以下问题:PHP next_widget_id_number函数的具体用法?PHP next_widget_id_number怎么用?PHP next_widget_id_number使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了next_widget_id_number函数的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: wp_list_widgets
/**
* Display list of the available widgets, either all or matching search.
*
* The search parameter are search terms separated by spaces.
*
* @since unknown
*
* @param string $show Optional, default is all. What to display, can be 'all', 'unused', or 'used'.
* @param string $_search Optional. Search for widgets. Should be unsanitized.
*/
function wp_list_widgets()
{
global $wp_registered_widgets, $sidebars_widgets, $wp_registered_widget_controls;
$sort = $wp_registered_widgets;
usort($sort, create_function('$a, $b', 'return strnatcasecmp( $a["name"], $b["name"] );'));
$done = array();
foreach ($sort as $widget) {
if (in_array($widget['callback'], $done, true)) {
// We already showed this multi-widget
continue;
}
$sidebar = is_active_widget($widget['callback'], $widget['id'], false, false);
$done[] = $widget['callback'];
if (!isset($widget['params'][0])) {
$widget['params'][0] = array();
}
$args = array('widget_id' => $widget['id'], 'widget_name' => $widget['name'], '_display' => 'template');
if (isset($wp_registered_widget_controls[$widget['id']]['id_base']) && isset($widget['params'][0]['number'])) {
$id_base = $wp_registered_widget_controls[$widget['id']]['id_base'];
$args['_temp_id'] = "{$id_base}-__i__";
$args['_multi_num'] = next_widget_id_number($id_base);
$args['_add'] = 'multi';
} else {
$args['_add'] = 'single';
if ($sidebar) {
$args['_hide'] = '1';
}
}
$args = wp_list_widget_controls_dynamic_sidebar(array(0 => $args, 1 => $widget['params'][0]));
call_user_func_array('wp_widget_control', $args);
}
}
示例2: widget_get_form
function widget_get_form()
{
if (!wp_verify_nonce($_POST['tfb_load_nonce'], 'tfb_load_nonce')) {
die(-1);
}
global $wp_widget_factory;
require_once ABSPATH . 'wp-admin/includes/widgets.php';
$widget_class = $_POST['load_class'];
if ($widget_class == '') {
die(-1);
}
$get_instance = isset($_POST['widget_instance']) ? $_POST['widget_instance'] : '';
$instance = array();
if (is_array($get_instance) && count($get_instance) > 0) {
foreach ($get_instance as $k => $s) {
$instance = $s;
}
}
$widget = new $widget_class();
$widget->number = next_widget_id_number($_POST['id_base']);
ob_start();
$widget->form($instance);
$form = ob_get_clean();
$widget->form = $form;
echo $widget->form;
echo '<br/>';
die;
}
示例3: getNumber
/**
* Vrátí číslo (v podstatě ID) právě na základě ID property, resp. její číselné přípony
*
* @author Martin Hlaváč
* @link http://www.ktstudio.cz
*
* @return int
*/
public function getNumber()
{
$id = $this->getId();
if (KT::issetAndNotEmpty($id)) {
$parts = explode("-", $id);
$parts = array_reverse($parts);
$number = KT::tryGetInt($parts[0]);
if (KT::isIdFormat($number)) {
return $number;
} else {
return next_widget_id_number($this->getName());
}
}
return 0;
}
示例4: get_available_widgets
/**
* Build up an index of all available widgets for use in Backbone models.
*
* @since 3.9.0
* @access public
*
* @global array $wp_registered_widgets
* @global array $wp_registered_widget_controls
* @staticvar array $available_widgets
*
* @see wp_list_widgets()
*
* @return array List of available widgets.
*/
public function get_available_widgets()
{
static $available_widgets = array();
if (!empty($available_widgets)) {
return $available_widgets;
}
global $wp_registered_widgets, $wp_registered_widget_controls;
require_once ABSPATH . '/wp-admin/includes/widgets.php';
// for next_widget_id_number()
$sort = $wp_registered_widgets;
usort($sort, array($this, '_sort_name_callback'));
$done = array();
foreach ($sort as $widget) {
if (in_array($widget['callback'], $done, true)) {
// We already showed this multi-widget
continue;
}
$sidebar = is_active_widget($widget['callback'], $widget['id'], false, false);
$done[] = $widget['callback'];
if (!isset($widget['params'][0])) {
$widget['params'][0] = array();
}
$available_widget = $widget;
unset($available_widget['callback']);
// not serializable to JSON
$args = array('widget_id' => $widget['id'], 'widget_name' => $widget['name'], '_display' => 'template');
$is_disabled = false;
$is_multi_widget = isset($wp_registered_widget_controls[$widget['id']]['id_base']) && isset($widget['params'][0]['number']);
if ($is_multi_widget) {
$id_base = $wp_registered_widget_controls[$widget['id']]['id_base'];
$args['_temp_id'] = "{$id_base}-__i__";
$args['_multi_num'] = next_widget_id_number($id_base);
$args['_add'] = 'multi';
} else {
$args['_add'] = 'single';
if ($sidebar && 'wp_inactive_widgets' !== $sidebar) {
$is_disabled = true;
}
$id_base = $widget['id'];
}
$list_widget_controls_args = wp_list_widget_controls_dynamic_sidebar(array(0 => $args, 1 => $widget['params'][0]));
$control_tpl = $this->get_widget_control($list_widget_controls_args);
// The properties here are mapped to the Backbone Widget model.
$available_widget = array_merge($available_widget, array('temp_id' => isset($args['_temp_id']) ? $args['_temp_id'] : null, 'is_multi' => $is_multi_widget, 'control_tpl' => $control_tpl, 'multi_number' => $args['_add'] === 'multi' ? $args['_multi_num'] : false, 'is_disabled' => $is_disabled, 'id_base' => $id_base, 'transport' => 'refresh', 'width' => $wp_registered_widget_controls[$widget['id']]['width'], 'height' => $wp_registered_widget_controls[$widget['id']]['height'], 'is_wide' => $this->is_wide_widget($widget['id'])));
$available_widgets[] = $available_widget;
}
return $available_widgets;
}
示例5: _add_widget
/**
* Adds a widget to WordPress. First creates a new widget instance, then
* adds the widget instance to the mega menu widget sidebar area.
*
* @since 1.0.0
* @param string $id_base
* @param int $menu_item_id
* @param string $title
*/
public function _add_widget($id_base, $menu_item_id, $title, $total_cols)
{
require_once ABSPATH . 'wp-admin/includes/widgets.php';
$next_id = next_widget_id_number($id_base);
$this->add_widget_instance($id_base, $next_id, $menu_item_id);
$widget_id = $this->add_widget_to_sidebar($id_base, $next_id);
$return = $this->get_widget_html($title, $widget_id, 4, $total_cols);
return array('content' => $return, 'id' => $widget_id);
}
示例6: add_widget
/**
* Adds a widget to WordPress. First creates a new widget instance, then
* adds the widget instance to the mega menu widget sidebar area.
*
* @since 1.0
* @param string $id_base
* @param int $menu_item_id
* @param string $title
*/
public function add_widget($id_base, $menu_item_id, $title)
{
require_once ABSPATH . 'wp-admin/includes/widgets.php';
$next_id = next_widget_id_number($id_base);
$this->add_widget_instance($id_base, $next_id, $menu_item_id);
$widget_id = $this->add_widget_to_sidebar($id_base, $next_id);
$return = '<div class="widget" data-columns="2" id="' . $widget_id . '" data-widget-id="' . $widget_id . '">';
$return .= ' <div class="widget-top">';
$return .= ' <div class="widget-title-action">';
$return .= ' <a class="widget-option widget-contract"></a>';
$return .= ' <a class="widget-option widget-expand"></a>';
$return .= ' <a class="widget-option widget-action"></a>';
$return .= ' </div>';
$return .= ' <div class="widget-title">';
$return .= ' <h4>' . $title . '</h4>';
$return .= ' </div>';
$return .= ' </div>';
$return .= ' <div class="widget-inner"></div>';
$return .= '</div>';
return $return;
}
示例7: get_widget_form
/**
* Generates the widget form
*
* @since 1.0
* @return string
*/
function get_widget_form($widget, $name, $options = array())
{
global $wp_widget_factory;
require_once ABSPATH . 'wp-admin/includes/widgets.php';
if (!is_array($options)) {
$options = array();
}
$options = array_merge($options, array('number' => next_widget_id_number(0)));
ob_start();
$wp_widget_factory->widgets[$widget]->form($options);
do_action_ref_array('in_widget_form', array($wp_widget_factory->widgets[$widget], null, $options));
$form = ob_get_clean();
$base_name = 'widget-' . $wp_widget_factory->widgets[$widget]->id_base . '\\[' . $wp_widget_factory->widgets[$widget]->number . '\\]';
$form = preg_replace("/{$base_name}/", $name, $form);
return $form;
}
示例8: importTheme
//.........这里部分代码省略.........
$properties = unserialize($property);
if (count($properties) != 0) {
$classql = "REPLACE INTO {$classtable} (`container`,`user_class`,`hidephone`,`hidetablet`,`hidedesktop`,`layout_id`) VALUES ('{$container}','" . $properties["user_class"] . "','" . $properties["hidephone"] . "','" . $properties["hidetablet"] . "','" . $properties["hidedesktop"] . "','" . $properties["layout_id"] . "')";
$wpdb->query($classql);
}
}
}
// Insert row Column CSS
foreach ($row['col'] as $colid => $colcss) {
$column = 'col-' . $layoutid . '-' . $colid;
foreach ($colcss as $element => $property) {
if ($element != 'custom_classes') {
$properties = serialize($property);
$colsql = "INSERT INTO {$ctable} VALUES ('','{$column}','{$layoutid}','{$element}','{$properties}')";
$wpdb->query($colsql);
} else {
$properties = unserialize($property);
if (count($properties) != 0) {
$classql = "REPLACE INTO {$classtable} (`container`,`user_class`,`hidephone`,`hidetablet`,`hidedesktop`,`layout_id`) VALUES ('{$column}','" . $properties["user_class"] . "','" . $properties["hidephone"] . "','" . $properties["hidetablet"] . "','" . $property["hidedesktop"] . "','" . $properties["layout_id"] . "')";
$wpdb->query($classql);
}
}
}
}
//Import the widgets
foreach ($row["widgets"] as $sidebar => $widgets) {
foreach ($widgets as $widget) {
$option = $widget['widget_name'];
$id_base = $widget['id_base'];
if (isset($messedids[$option])) {
$nextid = $messedids[$option] + 1;
$messedids[$option] = $nextid;
} else {
$nextid = next_widget_id_number($widget['id_base']);
$messedids[$option] = $nextid;
}
$warray = get_option($option);
unset($widget['widget_name']);
unset($widget['id_base']);
$warray[$nextid] = $widget;
update_option($option, $warray);
$ultimatum_sidebars_widgets = get_option('ultimatum_sidebars_widgets');
$ultimatum_sidebars_widgets['sidebar-' . $rowid . '-' . $sidebar][] = $id_base . '-' . $nextid;
update_option('ultimatum_sidebars_widgets', $ultimatum_sidebars_widgets);
unset($warray);
}
}
// Widget import Done :)
}
// GENERATE Layout specific CSS
// Save the CSS
$file = THEME_CACHE_DIR . '/layout_' . $prel . $layoutid . '.css';
$query = "SELECT * FROM {$ctable} WHERE layout_id='{$layoutid}'";
$res = $wpdb->get_results($query, ARRAY_A);
$css = '';
foreach ($res as $fetch) {
if ($fetch["element"] == 'general') {
if ($fetch["container"] != 'body') {
if (eregi('col-', $fetch["container"])) {
$el = '#' . $fetch["container"] . ' .colwrapper';
} else {
$el = '#' . $fetch["container"];
}
} else {
$el = $fetch["container"];
}
示例9: add_widget
/**
* Adds a widget to WordPress. First creates a new widget instance, then
* adds the widget instance to the mega menu widget sidebar area.
*
* @since 1.0
* @param string $id_base
* @param int $menu_item_id
*/
public function add_widget($id_base, $menu_item_id)
{
require_once ABSPATH . 'wp-admin/includes/widgets.php';
$next_id = next_widget_id_number($id_base);
$this->add_widget_instance($id_base, $next_id, $menu_item_id);
$widget_id = $this->add_widget_to_sidebar($id_base, $next_id);
return $widget_id;
}
示例10: add_widget
/**
* Adds a widget to WordPress. First creates a new widget instance, then
* adds the widget instance to the mega menu widget sidebar area.
*
* @since 1.0
* @param string $id_base
* @param int $menu_item_id
* @param string $title
*/
public function add_widget($id_base, $menu_item_id, $title)
{
require_once ABSPATH . 'wp-admin/includes/widgets.php';
$next_id = next_widget_id_number($id_base);
$this->add_widget_instance($id_base, $next_id, $menu_item_id);
$widget_id = $this->add_widget_to_sidebar($id_base, $next_id);
$return = '<div class="widget" title="' . esc_attr($title) . '" data-columns="2" id="' . $widget_id . '" data-type="widget" data-id="' . $widget_id . '">';
$return .= ' <div class="widget-top">';
$return .= ' <div class="widget-title-action">';
$return .= ' <a class="widget-option widget-contract" title="' . esc_attr(__("Contract", "megamenu")) . '"></a>';
$return .= ' <span class="widget-cols"><span class="widget-num-cols">2</span><span class="widget-of">/</span><span class="widget-total-cols">X</span></span>';
$return .= ' <a class="widget-option widget-expand" title="' . esc_attr(__("Expand", "megamenu")) . '"></a>';
$return .= ' <a class="widget-option widget-action" title="' . esc_attr(__("Edit", "megamenu")) . '"></a>';
$return .= ' </div>';
$return .= ' <div class="widget-title">';
$return .= ' <h4>' . esc_html($title) . '</h4>';
$return .= ' </div>';
$return .= ' </div>';
$return .= ' <div class="widget-inner"></div>';
$return .= '</div>';
return $return;
}
示例11: install_default_content
/**
* Install default content when theme is activated.
*
* Set the 'PC_INSTALL_DEFAULT_CONTENT' and 'PC_INSTALL_CONTENT_PROMPT' constants
* to control how this appears to the user.
*
* @since 0.1.0
*/
public static function install_default_content($theme_options_url)
{
/* Create default content, and configure menus, widgets etc. */
/* Add some default pages. */
$pages = array(array('title' => 'Blog', 'content' => '', 'template' => 'blog-page.php'), array('title' => 'About Us', 'content' => 'Some information all about us.', 'template' => ''), array('title' => 'Sitemap', 'content' => '', 'template' => 'sitemap-page.php'), array('title' => 'Contact Us', 'content' => 'Please use the contact form below for all enquiries. We will respond to your message as soon as possible.', 'template' => 'contact-page.php'));
/* Create some new theme pages. */
self::create_theme_pages($pages);
/* Create nav menu if it doesn't already exist and add some pages. */
self::create_new_theme_nav_menu($pages);
/* Define the multi number for each widget type here, then increment for each additional widget added of the same type. */
global $pc_info_box_multi_number;
$pc_info_box_multi_number = next_widget_id_number('pc_info_widget_' . PC_THEME_NAME_SLUG);
/* Add an Info Box widget to the header widget area. */
$info_box_widget = array('widget_area' => 'header-widget-area', 'widget_name' => 'Info Box', 'default_settings' => array('title' => 'Header Info Box', 'info_description' => '', 'phone_number' => '(949) 867-5307', 'facebook_id' => 'PressCoders', 'twitter_id' => 'presscoders', 'youtube_id' => 'PressCoders', 'flickr_id' => '', 'googleplus_id' => 'http://plus.google.com', 'linkedin_id' => 'http://www.linkedin.com', 'rss_id' => 'http://www.presscoders.com', 'custom_id_1' => '', 'custom_img_1' => '', 'show_search' => ''));
self::add_default_widget($info_box_widget, true);
/* Install extra content if demo site active. */
if (PC_INSTALL_DEMO_CONTENT && method_exists('PC_TS_Utility', 'theme_demo_default_content')) {
/* Install theme specific demo content if class method has been declared. */
PC_TS_Utility::theme_demo_default_content();
}
/* Render theme activation message. */
self::theme_activation_message($theme_options_url);
}