preview() 공개 메소드

Handle previewing the setting.
또한 보기: WP_Customize_Manager::post_value()
부터: 4.3.0
부터: 4.4.0 Added boolean return value.
public preview ( ) : boolean
리턴 boolean False if method short-circuited due to no-op.
예제 #1
0
 /**
  * Test WP_Customize_Nav_Menu_Item_Setting::value_as_wp_post_nav_menu_item().
  *
  * @see WP_Customize_Nav_Menu_Item_Setting::value_as_wp_post_nav_menu_item()
  */
 function test_value_as_wp_post_nav_menu_item()
 {
     $post_id = self::factory()->post->create();
     $setting = new WP_Customize_Nav_Menu_Item_Setting($this->wp_customize, 'nav_menu_item[123]');
     $post_value = array('object_id' => $post_id, 'object' => 'post', 'menu_item_parent' => 0, 'position' => 2, 'type' => 'custom_type', 'title' => 'Hello \\o/ o\'o World', 'url' => '', 'target' => '', 'attr_title' => '">att \\o/ o\'o empted <b>baddie</b>', 'description' => 'Attempted \\o/ o\'o <b>markup</b>', 'classes' => '', 'xfn' => '', 'status' => 'publish', 'original_title' => '', 'nav_menu_term_id' => 0, '_invalid' => false);
     $this->wp_customize->set_post_value($setting->id, $post_value);
     $setting->preview();
     $nav_menu_item = $setting->value_as_wp_post_nav_menu_item();
     $this->assertEquals('Custom Link', $nav_menu_item->type_label);
     add_filter('wp_setup_nav_menu_item', array($this, 'filter_type_label'));
     $nav_menu_item = $setting->value_as_wp_post_nav_menu_item();
     $this->assertEquals('Custom Label', $nav_menu_item->type_label);
     $this->assertObjectNotHasAttribute('nav_menu_term_id', $nav_menu_item);
     $this->assertObjectNotHasAttribute('status', $nav_menu_item);
     $this->assertEquals('publish', $nav_menu_item->post_status);
     $this->assertEquals('nav_menu_item', $nav_menu_item->post_type);
     $this->assertObjectNotHasAttribute('position', $nav_menu_item);
     $this->assertEquals($post_value['position'], $nav_menu_item->menu_order);
     $this->assertEquals($post_value['title'], $nav_menu_item->post_title);
     $this->assertEquals(123, $nav_menu_item->ID);
     $this->assertEquals(123, $nav_menu_item->db_id);
     $this->assertEquals(wp_get_current_user()->ID, $nav_menu_item->post_author);
     $this->assertObjectHasAttribute('type_label', $nav_menu_item);
     $expected = apply_filters('nav_menu_attr_title', wp_unslash(apply_filters('excerpt_save_pre', wp_slash($post_value['attr_title']))));
     $this->assertEquals($expected, $nav_menu_item->attr_title);
     $this->assertEquals('Attempted \\o/ o&#8217;o markup', $nav_menu_item->description);
 }
예제 #2
0
 /**
  * Test WP_Customize_Nav_Menu_Item_Setting::value_as_wp_post_nav_menu_item() where title is empty.
  *
  * @ticket 38015
  * @see WP_Customize_Nav_Menu_Item_Setting::value_as_wp_post_nav_menu_item()
  */
 function test_value_as_wp_post_nav_menu_item_with_empty_title()
 {
     $original_title = 'The Original Title';
     $post_id = self::factory()->post->create(array('post_title' => $original_title));
     $setting = new WP_Customize_Nav_Menu_Item_Setting($this->wp_customize, 'nav_menu_item[123]');
     $post_value = array_merge($setting->default, array('object_id' => $post_id, 'object' => 'post', 'type' => 'post_type', 'status' => 'publish', 'nav_menu_term_id' => 0));
     $this->wp_customize->set_post_value($setting->id, $post_value);
     $setting->preview();
     $nav_menu_item = $setting->value_as_wp_post_nav_menu_item();
     $this->assertEquals($original_title, $nav_menu_item->title);
 }
 /**
  * Test preview method for deleted menu.
  *
  * @see WP_Customize_Nav_Menu_Item_Setting::preview()
  */
 function test_preview_deleted()
 {
     do_action('customize_register', $this->wp_customize);
     $menu_id = wp_create_nav_menu('Primary');
     $post_id = $this->factory->post->create(array('post_title' => 'Hello World'));
     $item_ids = array();
     for ($i = 0; $i < 5; $i += 1) {
         $item_id = wp_update_nav_menu_item($menu_id, 0, array('menu-item-type' => 'post_type', 'menu-item-object' => 'post', 'menu-item-object-id' => $post_id, 'menu-item-title' => "Item {$i}", 'menu-item-status' => 'publish', 'menu-item-position' => $i + 1));
         $item_ids[] = $item_id;
     }
     $delete_item_id = $item_ids[2];
     $setting_id = "nav_menu_item[{$delete_item_id}]";
     $setting = new WP_Customize_Nav_Menu_Item_Setting($this->wp_customize, $setting_id);
     $this->wp_customize->set_post_value($setting_id, false);
     $current_items = wp_get_nav_menu_items($menu_id);
     $this->assertContains($delete_item_id, wp_list_pluck($current_items, 'db_id'));
     $setting->preview();
     $preview_items = wp_get_nav_menu_items($menu_id);
     $this->assertNotEquals(count($current_items), count($preview_items));
     $this->assertContains($delete_item_id, wp_list_pluck($current_items, 'db_id'));
 }