Я пытаюсь создать пользовательский блок ACF Gutenberg, в котором будет изображение с различными размерами и ссылка на URL. Это будет встроенное объявление на странице, которое откроется на новой вкладке.
Объявления имеют различные размеры, поэтому у меня есть функция, позволяющая создавать собственные размеры изображений и разрешать их выбор при загрузке. изображение. (изображение-размеры. php). Если я использую блок изображения Гутенберга, появляется опция размера изображения, которая имеет все мои собственные размеры. Но когда я загружаю через свой блок изображений, он не дает вам возможности для размера.
Итак, как я могу получить раскрывающийся размер изображения для моего пользовательского блока? такой же, как основной блок изображения.
размеры изображения. php
<?php
/**
* Add Custom Image sizes for House Ads.
*/
function set_custom_image_sizes() {
if ( function_exists( 'add_image_size' ) )
add_theme_support('post-thumbnails');
if (function_exists('add_image_size')) {
add_image_size( 'Square', 250, 250, true );
add_image_size( 'Small-Square', 200, 200, true );
add_image_size( 'Banner', 468, 60, true );
add_image_size( 'Leaderboard', 728, 90, true );
add_image_size( 'Inline-Rectangle', 300, 250, true );
add_image_size( 'Large-Rectange', 336, 280, true );
add_image_size( 'Skyscraper', 120, 600, true );
add_image_size( 'Wide-Skyscraper', 160, 600, true );
add_image_size( 'Half-Page-Ad', 300, 600, true );
add_image_size( 'Large-Leaderboard', 970, 90, true );
add_image_size( 'Blog-Large-Rectangle', 2000, 400, true );
}
}
add_action( 'after_setup_theme', 'set_custom_image_sizes' );
/**
* Alow Custom Sized Images to be selected in Image Size List
*/
function create_custom_image_sizes($sizes){
return array_merge( $sizes, array(
'Square' => __('Square - 250x250'),
'Small-Square' => __('Small Square - 200x200'),
'Banner' => __('Banner - 468x60'),
'Leaderboard' => __('Leaderboard - 728x90'),
'Inline-Rectangle' => __('Inline Rectangle - 300x250'),
'Large-Rectange' => __('Large Rectange - 336x280'),
'Skyscraper' => __('Skyscraper - 120x600'),
'Wide-Skyscraper' => __('Wide Skyscraper - 160x600'),
'Half-Page-Ad' => __('Half Page Ad - 300x600'),
'Large-Leaderboard' => __('Large Leaderboard - 970x90'),
'Blog-Large-Rectangle' => __('Blog Large Rectangle - 2000x400')
));
}
add_filter('image_size_names_choose', 'create_custom_image_sizes');
house-ad. php
<a href="<?php the_field('house_ad_url') ?>" target="_blank">
<img src="<?php the_field('house_ad_image_url') ?>" alt="Buildertrend">
</a>
acf json
{
"key": "group_5e569ee954507",
"title": "Block - On Page House Ad",
"fields": [
{
"key": "field_5e56a2cafcb41",
"label": "House Ad URL",
"name": "house_ad_url",
"type": "url",
"instructions": "",
"required": 1,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"default_value": "",
"placeholder": ""
},
{
"key": "field_5e56a324fcb42",
"label": "House Ad Image",
"name": "house_ad_image",
"type": "image",
"instructions": "",
"required": 1,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"return_format": "id",
"preview_size": "full",
"library": "all",
"min_width": "",
"min_height": "",
"min_size": "",
"max_width": "",
"max_height": "",
"max_size": "",
"mime_types": ""
}
],
"location": [
[
{
"param": "block",
"operator": "==",
"value": "acf\/house-ads"
}
]
],
"menu_order": 0,
"position": "normal",
"style": "seamless",
"label_placement": "top",
"instruction_placement": "label",
"hide_on_screen": "",
"active": 1,
"description": "",
"modified": 1582916959
}
acf_register_block_type(array(
'name' => 'house-ads',
'title' => __('House Ads'),
'description' => __('House Ads. Various sizes.'),
'category' => 'my-custom-blocks',
'icon' => 'screenoptions',
'mode' => $acf_mode,
'supports' => array('align' => false, 'multiple' => true),
'post_types' => $default_supported_post_types,
'render_template' => '_partials/block.php',
'enqueue_assets' => function(){
wp_enqueue_style('house-ad-css', CHILD_URI . '_assets/_dist/house-ad.css', array(), filemtime(CHILD_PATH . '_assets/_dist/house-ad.css'));
wp_enqueue_script('house-ad-js', CHILD_URI . '_assets/_dist/house-ad.js', array(), filemtime(CHILD_PATH . '_assets/_dist/house-ad.js'), true);
},
));