本文整理汇总了PHP中WP_Customize_Manager::changeset_post_id方法的典型用法代码示例。如果您正苦于以下问题:PHP WP_Customize_Manager::changeset_post_id方法的具体用法?PHP WP_Customize_Manager::changeset_post_id怎么用?PHP WP_Customize_Manager::changeset_post_id使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WP_Customize_Manager
的用法示例。
在下文中一共展示了WP_Customize_Manager::changeset_post_id方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1:
/**
* Test WP_Customize_Manager::changeset_post_id().
*
* @ticket 30937
* @covers WP_Customize_Manager::changeset_post_id()
*/
function test_changeset_post_id()
{
$uuid = wp_generate_uuid4();
$wp_customize = new WP_Customize_Manager(array('changeset_uuid' => $uuid));
$this->assertNull($wp_customize->changeset_post_id());
$uuid = wp_generate_uuid4();
$wp_customize = new WP_Customize_Manager(array('changeset_uuid' => $uuid));
$post_id = $this->factory()->post->create(array('post_name' => $uuid, 'post_type' => 'customize_changeset', 'post_status' => 'auto-draft', 'post_content' => '{}'));
$this->assertEquals($post_id, $wp_customize->changeset_post_id());
}
示例2: array
/**
* Test WP_Customize_Manager::import_theme_starter_content().
*
* @covers WP_Customize_Manager::import_theme_starter_content()
* @covers WP_Customize_Manager::_save_starter_content_changeset()
*/
function test_import_theme_starter_content()
{
wp_set_current_user(self::$admin_user_id);
register_nav_menu('top', 'Top');
add_theme_support('custom-logo');
add_theme_support('custom-header');
add_theme_support('custom-background');
$canola_file = DIR_TESTDATA . '/images/canola.jpg';
$existing_canola_attachment_id = self::factory()->attachment->create_object($canola_file, 0, array('post_mime_type' => 'image/jpeg', 'post_type' => 'attachment', 'post_name' => 'canola'));
$existing_published_home_page_id = $this->factory()->post->create(array('post_name' => 'home', 'post_type' => 'page', 'post_status' => 'publish'));
$existing_auto_draft_about_page_id = $this->factory()->post->create(array('post_name' => 'about', 'post_type' => 'page', 'post_status' => 'auto-draft'));
global $wp_customize;
$wp_customize = new WP_Customize_Manager();
$starter_content_config = array('widgets' => array('sidebar-1' => array('text_business_info', 'meta_custom' => array('meta', array('title' => 'Pre-hydrated meta widget.')))), 'nav_menus' => array('top' => array('name' => 'Menu Name', 'items' => array('link_home', 'page_about', 'page_blog', 'link_email', 'link_facebook', 'link_custom' => array('title' => 'Custom', 'url' => 'https://custom.example.com/')))), 'posts' => array('home', 'about' => array('template' => 'sample-page-template.php'), 'blog', 'custom' => array('post_type' => 'post', 'post_title' => 'Custom', 'thumbnail' => '{{waffles}}')), 'attachments' => array('waffles' => array('post_title' => 'Waffles', 'post_content' => 'Waffles Attachment Description', 'post_excerpt' => 'Waffles Attachment Caption', 'file' => DIR_TESTDATA . '/images/waffles.jpg'), 'canola' => array('post_title' => 'Canola', 'post_content' => 'Canola Attachment Description', 'post_excerpt' => 'Canola Attachment Caption', 'file' => DIR_TESTDATA . '/images/canola.jpg')), 'options' => array('blogname' => 'Starter Content Title', 'blogdescription' => 'Starter Content Tagline', 'show_on_front' => 'page', 'page_on_front' => '{{home}}', 'page_for_posts' => '{{blog}}'), 'theme_mods' => array('custom_logo' => '{{canola}}', 'header_image' => '{{waffles}}', 'background_image' => '{{waffles}}'));
update_option('posts_per_page', 1);
// To check #39022.
add_theme_support('starter-content', $starter_content_config);
$this->assertEmpty($wp_customize->unsanitized_post_values());
$wp_customize->import_theme_starter_content();
$changeset_values = $wp_customize->unsanitized_post_values();
$expected_setting_ids = array('blogname', 'blogdescription', 'custom_logo', 'header_image_data', 'background_image', 'widget_text[2]', 'widget_meta[3]', 'sidebars_widgets[sidebar-1]', 'nav_menus_created_posts', 'nav_menu[-1]', 'nav_menu_item[-1]', 'nav_menu_item[-2]', 'nav_menu_item[-3]', 'nav_menu_item[-4]', 'nav_menu_item[-5]', 'nav_menu_item[-6]', 'nav_menu_locations[top]', 'show_on_front', 'page_on_front', 'page_for_posts');
$this->assertEqualSets($expected_setting_ids, array_keys($changeset_values));
foreach (array('widget_text[2]', 'widget_meta[3]') as $setting_id) {
$this->assertInternalType('array', $changeset_values[$setting_id]);
$instance_data = $wp_customize->widgets->sanitize_widget_instance($changeset_values[$setting_id]);
$this->assertInternalType('array', $instance_data);
$this->assertArrayHasKey('title', $instance_data);
}
$this->assertEquals(array('text-2', 'meta-3'), $changeset_values['sidebars_widgets[sidebar-1]']);
$posts_by_name = array();
$this->assertCount(6, $changeset_values['nav_menus_created_posts']);
$this->assertContains($existing_published_home_page_id, $changeset_values['nav_menus_created_posts'], 'Expected reuse of non-auto-draft posts.');
$this->assertContains($existing_canola_attachment_id, $changeset_values['nav_menus_created_posts'], 'Expected reuse of non-auto-draft attachment.');
$this->assertNotContains($existing_auto_draft_about_page_id, $changeset_values['nav_menus_created_posts'], 'Expected non-reuse of auto-draft posts.');
foreach ($changeset_values['nav_menus_created_posts'] as $post_id) {
$post = get_post($post_id);
if ($post->ID === $existing_published_home_page_id) {
$this->assertEquals('publish', $post->post_status);
} elseif ($post->ID === $existing_canola_attachment_id) {
$this->assertEquals('inherit', $post->post_status);
} else {
$this->assertEquals('auto-draft', $post->post_status);
$this->assertEmpty($post->post_name);
}
$post_name = $post->post_name;
if (empty($post_name)) {
$post_name = get_post_meta($post->ID, '_customize_draft_post_name', true);
}
$posts_by_name[$post_name] = $post->ID;
}
$this->assertEquals(array('waffles', 'canola', 'home', 'about', 'blog', 'custom'), array_keys($posts_by_name));
$this->assertEquals('Custom', get_post($posts_by_name['custom'])->post_title);
$this->assertEquals('sample-page-template.php', get_page_template_slug($posts_by_name['about']));
$this->assertEquals('', get_page_template_slug($posts_by_name['blog']));
$this->assertEquals($posts_by_name['waffles'], get_post_thumbnail_id($posts_by_name['custom']));
$this->assertEquals('', get_post_thumbnail_id($posts_by_name['blog']));
$attachment_metadata = wp_get_attachment_metadata($posts_by_name['waffles']);
$this->assertEquals('Waffles', get_post($posts_by_name['waffles'])->post_title);
$this->assertEquals('waffles', get_post_meta($posts_by_name['waffles'], '_customize_draft_post_name', true));
$this->assertArrayHasKey('file', $attachment_metadata);
$this->assertContains('waffles', $attachment_metadata['file']);
$this->assertEquals('page', $changeset_values['show_on_front']);
$this->assertEquals($posts_by_name['home'], $changeset_values['page_on_front']);
$this->assertEquals($posts_by_name['blog'], $changeset_values['page_for_posts']);
$this->assertEquals(-1, $changeset_values['nav_menu_locations[top]']);
$this->assertEquals(0, $changeset_values['nav_menu_item[-1]']['object_id']);
$this->assertEquals('custom', $changeset_values['nav_menu_item[-1]']['type']);
$this->assertEquals(home_url(), $changeset_values['nav_menu_item[-1]']['url']);
$this->assertEmpty($wp_customize->changeset_data());
$this->assertNull($wp_customize->changeset_post_id());
$this->assertEquals(1000, has_action('customize_register', array($wp_customize, '_save_starter_content_changeset')));
do_action('customize_register', $wp_customize);
// This will trigger the changeset save.
$this->assertInternalType('int', $wp_customize->changeset_post_id());
$this->assertNotEmpty($wp_customize->changeset_data());
foreach ($wp_customize->changeset_data() as $setting_id => $setting_params) {
$this->assertArrayHasKey('starter_content', $setting_params);
$this->assertTrue($setting_params['starter_content']);
}
// Ensure that re-importing doesn't cause auto-drafts to balloon.
$wp_customize->import_theme_starter_content();
$changeset_data = $wp_customize->changeset_data();
$this->assertEqualSets(array_values($posts_by_name), $changeset_data['nav_menus_created_posts']['value']);
// Auto-drafts should not get re-created and amended with each import.
// Test that saving non-starter content on top of the changeset clears the starter_content flag.
$wp_customize->save_changeset_post(array('data' => array('blogname' => array('value' => 'Starter Content Modified'))));
$changeset_data = $wp_customize->changeset_data();
$this->assertArrayNotHasKey('starter_content', $changeset_data['blogname']);
$this->assertArrayHasKey('starter_content', $changeset_data['blogdescription']);
// Test that adding blogname starter content is ignored now that it is modified, but updating a non-modified starter content blog description passes.
$previous_blogname = $changeset_data['blogname']['value'];
$previous_blogdescription = $changeset_data['blogdescription']['value'];
$wp_customize->import_theme_starter_content(array('options' => array('blogname' => 'Newer Starter Content Title', 'blogdescription' => 'Newer Starter Content Description')));
$changeset_data = $wp_customize->changeset_data();
//.........这里部分代码省略.........
示例3: array
/**
* Test WP_Customize_Manager::save().
*
* @ticket 30937
* @covers WP_Customize_Manager::save()
*/
function test_save_failures()
{
global $wp_customize;
$wp_customize = new WP_Customize_Manager();
$wp_customize->register_controls();
add_filter('user_has_cap', array($this, 'filter_user_has_cap'));
// Unauthenticated.
wp_set_current_user(0);
$this->make_ajax_call('customize_save');
$this->assertFalse($this->_last_response_parsed['success']);
$this->assertEquals('unauthenticated', $this->_last_response_parsed['data']);
// Unauthorized.
wp_set_current_user(self::$subscriber_user_id);
$nonce = wp_create_nonce('save-customize_' . $wp_customize->get_stylesheet());
$_POST['nonce'] = $_GET['nonce'] = $_REQUEST['nonce'] = $nonce;
$exception = null;
try {
ob_start();
$wp_customize->setup_theme();
} catch (WPAjaxDieContinueException $e) {
$exception = $e;
}
$this->assertNotEmpty($e);
$this->assertEquals(-1, $e->getMessage());
// Not called setup_theme.
wp_set_current_user(self::$admin_user_id);
$nonce = wp_create_nonce('save-customize_' . $wp_customize->get_stylesheet());
$_POST['nonce'] = $_GET['nonce'] = $_REQUEST['nonce'] = $nonce;
$this->make_ajax_call('customize_save');
$this->assertFalse($this->_last_response_parsed['success']);
$this->assertEquals('not_preview', $this->_last_response_parsed['data']);
// Bad nonce.
$_POST['nonce'] = $_GET['nonce'] = $_REQUEST['nonce'] = 'bad';
$wp_customize->setup_theme();
$this->make_ajax_call('customize_save');
$this->assertFalse($this->_last_response_parsed['success']);
$this->assertEquals('invalid_nonce', $this->_last_response_parsed['data']);
// User cannot create.
$nonce = wp_create_nonce('save-customize_' . $wp_customize->get_stylesheet());
$_POST['nonce'] = $_GET['nonce'] = $_REQUEST['nonce'] = $nonce;
$post_type_obj = get_post_type_object('customize_changeset');
$post_type_obj->cap->create_posts = 'create_customize_changesets';
$this->make_ajax_call('customize_save');
$this->assertFalse($this->_last_response_parsed['success']);
$this->assertEquals('cannot_create_changeset_post', $this->_last_response_parsed['data']);
$this->overridden_caps[$post_type_obj->cap->create_posts] = true;
$this->make_ajax_call('customize_save');
$this->assertTrue($this->_last_response_parsed['success']);
$post_type_obj->cap->create_posts = 'customize';
// Restore.
// Changeset already published.
$wp_customize->set_post_value('blogname', 'Hello');
$wp_customize->save_changeset_post(array('status' => 'publish'));
$this->make_ajax_call('customize_save');
$this->assertFalse($this->_last_response_parsed['success']);
$this->assertEquals('changeset_already_published', $this->_last_response_parsed['data']['code']);
wp_update_post(array('ID' => $wp_customize->changeset_post_id(), 'post_status' => 'auto-draft'));
// User cannot edit.
$post_type_obj = get_post_type_object('customize_changeset');
$post_type_obj->cap->edit_post = 'edit_customize_changesets';
$this->make_ajax_call('customize_save');
$this->assertFalse($this->_last_response_parsed['success']);
$this->assertEquals('cannot_edit_changeset_post', $this->_last_response_parsed['data']);
$this->overridden_caps[$post_type_obj->cap->edit_post] = true;
$this->make_ajax_call('customize_save');
$this->assertTrue($this->_last_response_parsed['success']);
$post_type_obj->cap->edit_post = 'customize';
// Restore.
// Bad customize_changeset_data.
$_POST['customize_changeset_data'] = '[MALFORMED]';
$this->make_ajax_call('customize_save');
$this->assertFalse($this->_last_response_parsed['success']);
$this->assertEquals('invalid_customize_changeset_data', $this->_last_response_parsed['data']);
// Bad customize_changeset_status.
$_POST['customize_changeset_data'] = '{}';
$_POST['customize_changeset_status'] = 'unrecognized';
$this->make_ajax_call('customize_save');
$this->assertFalse($this->_last_response_parsed['success']);
$this->assertEquals('bad_customize_changeset_status', $this->_last_response_parsed['data']);
// Disallowed publish posts if not allowed.
$post_type_obj = get_post_type_object('customize_changeset');
$post_type_obj->cap->publish_posts = 'publish_customize_changesets';
$_POST['customize_changeset_status'] = 'publish';
$this->make_ajax_call('customize_save');
$this->assertFalse($this->_last_response_parsed['success']);
$this->assertEquals('changeset_publish_unauthorized', $this->_last_response_parsed['data']);
$_POST['customize_changeset_status'] = 'future';
$this->make_ajax_call('customize_save');
$this->assertFalse($this->_last_response_parsed['success']);
$this->assertEquals('changeset_publish_unauthorized', $this->_last_response_parsed['data']);
$post_type_obj->cap->publish_posts = 'customize';
// Restore.
// Validate date.
$_POST['customize_changeset_status'] = 'draft';
//.........这里部分代码省略.........