[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f4FV5EWCLS3lO_OUFaHtY0dUUwed8BzJdEFhvbs3qFhQ":3},{"slug":4,"display_name":4,"profile_url":5,"plugin_count":6,"total_installs":7,"avg_security_score":8,"avg_patch_time_days":9,"trust_score":10,"computed_at":11,"plugins":12},"kubiq","https:\u002F\u002Fprofiles.wordpress.org\u002Fkubiq\u002F",13,135980,99,468,78,"2026-04-03T23:04:46.422Z",[13,38,58,78,97,113,130,149,168,184,201,216,227],{"slug":14,"name":15,"version":16,"author":4,"author_profile":5,"description":17,"short_description":18,"active_installs":19,"downloaded":20,"rating":21,"num_ratings":22,"last_updated":23,"tested_up_to":24,"requires_at_least":25,"requires_php":26,"tags":27,"homepage":31,"download_link":32,"security_score":33,"vuln_count":34,"unpatched_count":35,"last_vuln_date":36,"fetched_at":37},"mousewheel-smooth-scroll","MouseWheel Smooth Scroll","6.7.3","\u003Cp>Replace basic website scrolling “effect” with nice smooth scroll using mousewheel, touchpad or keyboard arrows\u003C\u002Fp>\n\u003Cp>You can play with settings and test it here:\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fdemo.tastewp.com\u002Fmousewheel-smooth-scroll\" rel=\"nofollow ugc\">https:\u002F\u002Fdemo.tastewp.com\u002Fmousewheel-smooth-scroll\u003C\u002Fa>\u003C\u002Fp>\n","Smooth scrolling experience, with mousewheel, touchpad or keyboard",100000,711015,90,42,"2025-12-01T22:16:00.000Z","6.9.4","3.0.1","",[28,29,30],"mousewheel-scroll","scrolling","smooth-scroll","https:\u002F\u002Fkubiq.sk","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmousewheel-smooth-scroll.6.7.3.zip",100,1,0,"2021-10-18 00:00:00","2026-03-15T15:16:48.613Z",{"slug":39,"name":40,"version":41,"author":4,"author_profile":5,"description":42,"short_description":43,"active_installs":44,"downloaded":45,"rating":46,"num_ratings":47,"last_updated":48,"tested_up_to":24,"requires_at_least":25,"requires_php":26,"tags":49,"homepage":55,"download_link":56,"security_score":8,"vuln_count":34,"unpatched_count":35,"last_vuln_date":57,"fetched_at":37},"png-to-jpg","PNG to JPG","4.5","\u003Cp>Convert PNG images to JPG, free up web space and speed up your webpage\u003C\u002Fp>\n\u003Cul>\n\u003Cli>set quality of converted JPG\u003C\u002Fli>\n\u003Cli>auto convert on upload\u003C\u002Fli>\n\u003Cli>auto convert on upload only when PNG has no transparency\u003C\u002Fli>\n\u003Cli>only convert image if JPG filesize is lower than PNG filesize\u003C\u002Fli>\n\u003Cli>leave original PNG images on the server\u003C\u002Fli>\n\u003Cli>convert existing PNG image to JPG\u003C\u002Fli>\n\u003Cli>bulk convert existing PNG images to JPG\u003C\u002Fli>\n\u003Cli>conversion statistics\u003C\u002Fli>\n\u003C\u002Ful>\n","Convert PNG images to JPG, free up web space and speed up your webpage",10000,152345,94,40,"2025-12-01T23:56:00.000Z",[50,51,52,53,54],"convert","image","media","optimize","save-space","https:\u002F\u002Fwp-speedup.eu","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpng-to-jpg.4.5.zip","2022-05-06 13:18:00",{"slug":59,"name":60,"version":61,"author":4,"author_profile":5,"description":62,"short_description":63,"active_installs":44,"downloaded":64,"rating":33,"num_ratings":65,"last_updated":66,"tested_up_to":24,"requires_at_least":67,"requires_php":68,"tags":69,"homepage":75,"download_link":76,"security_score":8,"vuln_count":34,"unpatched_count":35,"last_vuln_date":77,"fetched_at":37},"remove-cpt-base","Remove CPT base","6.7","\u003Cp>Remove custom post type base slug from url\u003C\u002Fp>\n\u003Cul>\n\u003Cli>possibility to select specific custom post type(s)\u003C\u002Fli>\n\u003Cli>auto redirect old slugs to no-base slugs\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Yoast SEO specifics\u003C\u002Fh3>\n\u003Cp>If you’re using Yoast SEO plugin, after you change something in the Remove CPT base plugin, you should deactivate Yoast SEO and activate it back again to refresh its yoast_indexable database table, so it will generate correct og:url, canonical url and JSON-LD urls.\u003C\u002Fp>\n","Remove custom post type base slug from url",96204,33,"2025-12-01T22:03:00.000Z","3.0","5.6",[70,71,72,73,74],"base","custom-post-type","permalink","remove","slug","https:\u002F\u002Fwww.paypal.me\u002Fjakubnovaksl","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fremove-cpt-base.6.7.zip","2022-05-06 13:29:00",{"slug":79,"name":80,"version":81,"author":4,"author_profile":5,"description":82,"short_description":83,"active_installs":84,"downloaded":85,"rating":86,"num_ratings":87,"last_updated":88,"tested_up_to":24,"requires_at_least":89,"requires_php":90,"tags":91,"homepage":75,"download_link":93,"security_score":94,"vuln_count":95,"unpatched_count":35,"last_vuln_date":96,"fetched_at":37},"images-to-webp","Images to WebP","4.9.1","\u003Cp>Statistics say that WebP format can save over a half of the page weight without losing images quality.\u003Cbr \u002F>\nConvert PNG, JPG and GIF images to WebP and speed up your web, save visitors download data, make your Google ranking better.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>automated test after plugin activation to make sure it will work on your server\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>works with all types of WordPress installations: domain, subdomain, subdirectory, multisite\u002Fnetwork\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>works on Apache and NGiNX\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>image URL will be not changed\u003C\u002Fstrong> so it works everywhere, in \u003Cimg> src, srcset, \u003Cpicture>, even in CSS backgrounds and there is no problem with cache\u003C\u002Fli>\n\u003Cli>\u003Cstrong>original files will be not touched\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>set quality of converted images\u003C\u002Fli>\n\u003Cli>auto convert on upload\u003C\u002Fli>\n\u003Cli>only convert image if WebP filesize is lower than original image filesize\u003C\u002Fli>\n\u003Cli>bulk convert existing images to WebP ( you can choose folders )\u003C\u002Fli>\n\u003Cli>bulk convert only missing images\u003C\u002Fli>\n\u003Cli>works with `Fly Dynamic Image Resizer` plugin\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Hooks for developers\u003C\u002Fh3>\n\u003Ch4>itw_sizes\u003C\u002Fh4>\n\u003Cp>Maybe you want to disable WebP for thumbnails\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'itw_sizes', 'disable_itw_sizes', 10, 2 );\nfunction disable_itw_sizes( $sizes, $attachmentId ){\n    unset( $sizes['thumbnail'] );\n    return $sizes;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>itw_htaccess\u003C\u002Fh4>\n\u003Cp>Maybe you want to modify htaccess rules somehow\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'itw_htaccess', 'modify_itw_htaccess', 10, 2 );\nfunction modify_itw_htaccess( $rewrite_rules ){\n    \u002F\u002F do some magic here\n    return $rewrite_rules;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>itw_abspath\u003C\u002Fh4>\n\u003Cp>Maybe you use roots.io\u002Fbedrock or other custom folder structure\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'itw_abspath', 'modify_itw_abspath', 10, 2 );\nfunction modify_itw_abspath( $abspath ){\n    return trailingslashit( WP_CONTENT_DIR );\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>$images_to_webp->convert_image()\u003C\u002Fh4>\n\u003Cp>Maybe you want to automatically generate WebP for other plugins\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_action( 'XXPLUGIN_image_created', 'XX_images_to_webp', 10, 2 );\nfunction XX_images_to_webp( $image_path ){\n    global $images_to_webp;\n    $images_to_webp->convert_image( $image_path );\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n","Convert PNG, JPG and GIF images to WebP and speed up your web",9000,133688,88,31,"2026-01-14T09:24:00.000Z","5.0","7.0",[50,52,53,92],"pictures","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fimages-to-webp.4.9.1.zip",98,2,"2021-10-19 00:00:00",{"slug":98,"name":99,"version":100,"author":4,"author_profile":5,"description":101,"short_description":102,"active_installs":103,"downloaded":104,"rating":33,"num_ratings":105,"last_updated":106,"tested_up_to":24,"requires_at_least":25,"requires_php":68,"tags":107,"homepage":55,"download_link":111,"security_score":33,"vuln_count":35,"unpatched_count":35,"last_vuln_date":112,"fetched_at":37},"better-image-sizes","Better image sizes","3.9","\u003Cp>This plugin is ment mostly for developers. You need to use its functions in your theme or plugin to make it works.\u003C\u002Fp>\n\u003Cp>This plugin offers functionality like \u003Cstrong>face detection crop\u003C\u002Fstrong>, \u003Cstrong>focal point selector\u003C\u002Fstrong> for every image, \u003Cstrong>function to output responsive \u003Cpicture> sizes\u003C\u002Fstrong> and more.\u003C\u002Fp>\n\u003Ch3>Why to use this plugin?\u003C\u002Fh3>\n\u003Cp>WordPress will automatically create a lot of smaller images for every uploaded image.\u003Cbr \u002F>\nYou mostly need just 1 or 2 of them, so this is a waste of your server space and resources.\u003Cbr \u002F>\nAlso cropped images are generated from the center by default, which can be a problem many times.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>This plugin allows you to:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>disable autogenerated image sizes\u003C\u002Fli>\n\u003Cli>dynamically generate only needed image sizes for only needed images\u003C\u002Fli>\n\u003Cli>delete generated image sizes from this plugin individually or all together\u003C\u002Fli>\n\u003Cli>specify different focal point that will be in the focus while creating cropped versions of the image\u003C\u002Fli>\n\u003Cli>automatically detect focal point by face detection algorithm\u003C\u002Fli>\n\u003Cli>disable big image size threshold, so image bigger than 2560x2560px will be NOT scaled down\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>How it works\u003C\u002Fh3>\n\u003Col>\n\u003Cli>if you disable existing autogenerated image sizes, then newly uploaded images will not create its sizes\u003C\u002Fli>\n\u003Cli>you need to specify in your code what size is needed for the image\u003C\u002Fli>\n\u003Cli>image is dynamically created on the first visit of the page and is stored in \u003Ccode>uploads\u003C\u002Fcode> folder\u003C\u002Fli>\n\u003Cli>every next visit of that page will just load already generated image\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Functions\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>bis_get_attachment_image_src( $attachment_id, $size, $crop )\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Function inspired by default \u003Ccode>wp_get_attachment_image_src\u003C\u002Fcode>.\u003Cbr \u002F>\nIf you used \u003Cem>Fly Dynamic Image Resizer\u003C\u002Fem> before, you don’t need to replace \u003Ccode>fly_get_attachment_image_src\u003C\u002Fcode> functions in your code – there is a fallback, so you can deactivate \u003Cem>Fly Dynamic Image Resizer\u003C\u002Fem> and it will still work.\u003C\u002Fp>\n\u003Cp>Parameters:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Cstrong>attachment_id\u003C\u002Fstrong> (integer)(required)\u003Cbr \u002F>\nThe ID of the image attachment\u003Cbr \u002F>\nExample: \u003Ccode>123\u003C\u002Fcode> or \u003Ccode>get_post_thumbnail_id()\u003C\u002Fcode> or \u003Ccode>get_field('my_image')\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>size\u003C\u002Fstrong> (array)(required)\u003Cbr \u002F>\nAn array with the width and height\u003Cbr \u002F>\nExample: \u003Ccode>[ 1920, 1080 ]\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>crop\u003C\u002Fstrong> (boolean\u002Finteger\u002Farray\u002Fstring)(optional)\u003Cbr \u002F>\nSkip this or pass \u003Ccode>false\u003C\u002Fcode> or \u003Ccode>0\u003C\u002Fcode> if you don’t want to crop, just rescale,\u003Cbr \u002F>\notherwise pass \u003Ccode>true\u003C\u002Fcode> or \u003Ccode>1\u003C\u002Fcode> to use focal point crop that is selected in admin media (by default center),\u003Cbr \u002F>\nor pass array with string x-axis and y-axis parameters like \u003Ccode>[ 'right', 'bottom' ]\u003C\u002Fcode>\u003Cbr \u002F>\nor pass array with numeric x-axis and y-axis parameters like \u003Ccode>[ 0.5, 0.8 ]\u003C\u002Fcode>\u003Cbr \u002F>\nor pass string \u003Ccode>'face'\u003C\u002Fcode> to automatically detect face position (can be exhaustive on server resources)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Returns:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>array(\n    'src' => (string) url of the image,\n    'width' => (integer) width in pixels,\n    'height' => (integer) height in pixels\n)\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>&nbsp;\u003C\u002Fp>\n\u003Cp>\u003Cstrong>bis_get_attachment_image( $attachment_id, $size, $crop, $attr )\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Function inspired by default \u003Ccode>wp_get_attachment_image\u003C\u002Fcode>.\u003Cbr \u002F>\nIf you used \u003Cem>Fly Dynamic Image Resizer\u003C\u002Fem> before, you don’t need to replace \u003Ccode>fly_get_attachment_image\u003C\u002Fcode> functions in your code – there is a fallback, so you can deactivate \u003Cem>Fly Dynamic Image Resizer\u003C\u002Fem> and it will still work.\u003C\u002Fp>\n\u003Cp>Parameters:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Cstrong>attachment_id\u003C\u002Fstrong> (integer)(required)\u003Cbr \u002F>\nThe ID of the image attachment\u003Cbr \u002F>\nExample: \u003Ccode>123\u003C\u002Fcode> or \u003Ccode>get_post_thumbnail_id()\u003C\u002Fcode> or \u003Ccode>get_field('my_image')\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>size\u003C\u002Fstrong> (array)(required)\u003Cbr \u002F>\nAn array with the width and height\u003Cbr \u002F>\nExample: \u003Ccode>[ 1920, 1080 ]\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>crop\u003C\u002Fstrong> (boolean\u002Finteger\u002Farray\u002Fstring)(optional)\u003Cbr \u002F>\nSkip this or pass \u003Ccode>false\u003C\u002Fcode> or \u003Ccode>0\u003C\u002Fcode> if you don’t want to crop, just rescale,\u003Cbr \u002F>\notherwise pass \u003Ccode>true\u003C\u002Fcode> or \u003Ccode>1\u003C\u002Fcode> to use focal point crop that is selected in admin media (by default center),\u003Cbr \u002F>\nor pass array with string x-axis and y-axis parameters like \u003Ccode>[ 'right', 'bottom' ]\u003C\u002Fcode>\u003Cbr \u002F>\nor pass array with numeric x-axis and y-axis parameters like \u003Ccode>[ 0.5, 0.8 ]\u003C\u002Fcode>\u003Cbr \u002F>\nor pass string \u003Ccode>'face'\u003C\u002Fcode> to automatically detect face position (can be exhaustive on server resources)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>attr\u003C\u002Fstrong> (array)(optional)\u003Cbr \u002F>\nAn array of attributes\u003Cbr \u002F>\nSpecial attribute \u003Ccode>retina\u003C\u002Fcode> allows you to automatically generate srcset for \u003Ccode>@2x\u003C\u002Fcode> retina devices\u003Cbr \u002F>\nExample: \u003Ccode>array( 'retina' => true, 'alt' => 'Custom alt text', 'class' => 'my-class', 'id' => 'my-id' )\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Returns:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003Cimg src=\"https:\u002F\u002Fweb.com\u002Fwp-content\u002Fuploads\u002Fbis-images\u002F1234\u002Fyour-image-500x500-f50_50.jpg\" width=\"500\" height=\"500\" alt=\"Alt text\">\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>&nbsp;\u003C\u002Fp>\n\u003Cp>\u003Cstrong>bis_get_attachment_picture( $attachment_id, $sizes, $attr )\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Parameters:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Cstrong>attachment_id\u003C\u002Fstrong> (integer)(required)\u003Cbr \u002F>\nThe ID of the image attachment\u003Cbr \u002F>\nExample: \u003Ccode>123\u003C\u002Fcode> or \u003Ccode>get_post_thumbnail_id()\u003C\u002Fcode> or \u003Ccode>get_field('my_image')\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>sizes\u003C\u002Fstrong> (array)(required)\u003Cbr \u002F>\nAn array with the \u003Ccode>key => value\u003C\u002Fcode> pair\u003Cbr \u002F>\nwhere \u003Ccode>key\u003C\u002Fcode> means \u003Cstrong>breakpoint\u003C\u002Fstrong>\u003Cbr \u002F>\nand \u003Ccode>value\u003C\u002Fcode> is array of \u003Cstrong>width, height, crop and alternative_attachment_id\u003C\u002Fstrong>\u003Cbr \u002F>\nExample: \u003Ccode>[ 767 => [ 767, 400, 1, 987 ], 9999 => [ 1200, 500, 1 ] ]\u003C\u002Fcode>\u003Cbr \u002F>\nThis will generate \u003Ccode>\u003Csource media=\"(max-width:767px)\" srcset=\"image987_767x400.jpg\">\u003C\u002Fcode>\u003Cbr \u002F>\nand \u003Ccode>\u003Csource media=\"(max-width:9999px)\" srcset=\"image_1200x500.jpg\">\u003C\u002Fcode>\u003Cbr \u002F>\nand \u003Ccode>\u003Csource media=\"(min-width:10000px)\" srcset=\"image.jpg\">\u003C\u002Fcode>\u003Cbr \u002F>\nIf you will provide also key \u003Ccode>0\u003C\u002Fcode> then it will replace \u003Ccode>\u003Cimg>\u003C\u002Fcode>.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>attr\u003C\u002Fstrong> (array)(optional)\u003Cbr \u002F>\nAn array of attributes\u003Cbr \u002F>\nSpecial attribute \u003Ccode>retina\u003C\u002Fcode> allows you to automatically generate srcset for \u003Ccode>@2x\u003C\u002Fcode> retina devices\u003Cbr \u002F>\nExample: \u003Ccode>array( 'retina' => true, 'alt' => 'Custom alt text', 'class' => 'my-class', 'id' => 'my-id' )\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Example:\u003Cbr \u002F>\nTo generate perfect fullwidth hero image, that will looks great on 4K devices and also on small phones, but it will load only needed size, you can use:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>echo bis_get_attachment_picture(\n    get_post_thumbnail_id(),\n    [\n        375 => [ 375, 500, 1, 987 ],\n        575 => [ 575, 500, 1, 987 ],\n        767 => [ 767, 500, 1, 987 ],\n        991 => [ 991, 500, 1 ],\n        1199 => [ 1199, 500, 1 ],\n        1399 => [ 1399, 500, 1 ],\n        1600 => [ 1600, 500, 1 ],\n        1920 => [ 1920, 500, 1 ],\n        2560 => [ 2560, 500, 1 ],\n        3440 => [ 3440, 500, 1 ],\n        3840 => [ 3840, 500, 1 ],\n    ]\n);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Returns:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003Cpicture>\n    \u003Csource media=\"(max-width:375px)\" srcset=\"https:\u002F\u002Fweb.com\u002Fwp-content\u002Fuploads\u002Fbis-images\u002F987\u002Fyour-image-375x500-f50_50.jpg\">\n    \u003Csource media=\"(max-width:575px)\" srcset=\"https:\u002F\u002Fweb.com\u002Fwp-content\u002Fuploads\u002Fbis-images\u002F987\u002Fyour-image-575x500-f50_50.jpg\">\n    \u003Csource media=\"(max-width:767px)\" srcset=\"https:\u002F\u002Fweb.com\u002Fwp-content\u002Fuploads\u002Fbis-images\u002F987\u002Fyour-image-767x500-f50_50.jpg\">\n    \u003Csource media=\"(max-width:991px)\" srcset=\"https:\u002F\u002Fweb.com\u002Fwp-content\u002Fuploads\u002Fbis-images\u002F123\u002Fyour-image-991x500-f50_50.jpg\">\n    \u003Csource media=\"(max-width:1199px)\" srcset=\"https:\u002F\u002Fweb.com\u002Fwp-content\u002Fuploads\u002Fbis-images\u002F123\u002Fyour-image-1199x500-f50_50.jpg\">\n    \u003Csource media=\"(max-width:1399px)\" srcset=\"https:\u002F\u002Fweb.com\u002Fwp-content\u002Fuploads\u002Fbis-images\u002F123\u002Fyour-image-1399x500-f50_50.jpg\">\n    \u003Csource media=\"(max-width:1600px)\" srcset=\"https:\u002F\u002Fweb.com\u002Fwp-content\u002Fuploads\u002Fbis-images\u002F123\u002Fyour-image-1600x500-f50_50.jpg\">\n    \u003Csource media=\"(max-width:1920px)\" srcset=\"https:\u002F\u002Fweb.com\u002Fwp-content\u002Fuploads\u002Fbis-images\u002F123\u002Fyour-image-1920x500-f50_50.jpg\">\n    \u003Csource media=\"(max-width:2560px)\" srcset=\"https:\u002F\u002Fweb.com\u002Fwp-content\u002Fuploads\u002Fbis-images\u002F123\u002Fyour-image-2560x500-f50_50.jpg\">\n    \u003Csource media=\"(max-width:3440px)\" srcset=\"https:\u002F\u002Fweb.com\u002Fwp-content\u002Fuploads\u002Fbis-images\u002F123\u002Fyour-image-3440x500-f50_50.jpg\">\n    \u003Csource media=\"(max-width:3840px)\" srcset=\"https:\u002F\u002Fweb.com\u002Fwp-content\u002Fuploads\u002Fbis-images\u002F123\u002Fyour-image-3840x500-f50_50.jpg\">\n    \u003Csource media=\"(min-width:3841px)\" srcset=\"https:\u002F\u002Fweb.com\u002Fwp-content\u002Fuploads\u002F2022\u002F11\u002Fyour-image.jpg\">\n    \u003Cimg width=\"4000\" height=\"2000\" src=\"https:\u002F\u002Fweb.com\u002Fwp-content\u002Fuploads\u002F2022\u002F11\u002Fyour-image.jpg\" alt=\"Some alt\" loading=\"lazy\">\n\u003C\u002Fpicture>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>&nbsp;\u003C\u002Fp>\n\u003Ch3>There is no fallback for \u003Ccode>fly_add_image_size\u003C\u002Fcode> function\u003C\u002Fh3>\n\u003Cp>If you used \u003Cem>Fly Dynamic Image Resizer\u003C\u002Fem> before, you need to remove \u003Ccode>fly_add_image_size\u003C\u002Fcode> functions from your code.\u003Cbr \u002F>\nYou can create your own variables for sizes if you need it, like\u003C\u002Fp>\n\u003Cpre>\u003Ccode>define( 'MY_CUSTOM_SIZE', [ 1000, 200 ] );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>and then just us it inside functions, like:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>echo bis_get_attachment_image( get_post_thumbnail_id(), MY_CUSTOM_SIZE );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>&nbsp;\u003C\u002Fp>\n\u003Ch3>Support other extensions than JPG, PNG and WEBP\u003C\u002Fh3>\n\u003Cp>This plugin works by default only with JPG, PNG and WEBP files,\u003Cbr \u002F>\nbut you can easily allow any other mime types,\u003Cbr \u002F>\njust use this code eg. in \u003Ccode>wp-config.php\u003C\u002Fcode> or in your \u003Ccode>functions.php\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>define( 'BIS_ALLOWED_MIME_TYPES', array( 'image\u002Fjpeg', 'image\u002Fpng', 'any_other\u002Fmime_type' ) );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>&nbsp;\u003C\u002Fp>\n\u003Ch3>Get selected image focal point\u003C\u002Fh3>\n\u003Cp>Focal point data are stored in the attachement post metas.\u003Cbr \u002F>\nThere is also custom sanitize function, that you can use.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$focal_point = sanitize_focal_point( get_post_meta( get_post_thumbnail_id(), 'focal_point', true ) );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Returns:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>array( 0.5, 0.8 )\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>which means that focal point is 50% from left and 80% from top\u003C\u002Fp>\n","Dynamically generate only needed image sizes for only needed images, with manually selected focal point for crops",2000,21720,5,"2025-12-01T23:18:00.000Z",[52,53,108,109,110],"responsive","retina","thumbnails","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbetter-image-sizes.3.9.zip",null,{"slug":114,"name":115,"version":116,"author":4,"author_profile":5,"description":117,"short_description":118,"active_installs":103,"downloaded":119,"rating":120,"num_ratings":121,"last_updated":122,"tested_up_to":24,"requires_at_least":25,"requires_php":68,"tags":123,"homepage":55,"download_link":128,"security_score":94,"vuln_count":95,"unpatched_count":35,"last_vuln_date":129,"fetched_at":37},"pdf-thumbnail-generator","PDF Thumbnail Generator","1.5","\u003Cp>Generates thumbnail for PDF file automatically after file is uploaded to the Media library.\u003C\u002Fp>\n\u003Cp>You can also generate thumbnails for old PDF files that are already in the Media library – you can generate missing thumbnails or regenerate all thumbnails.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Imagick library must be installed on your server, otherwise this plugin will not work\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>automated test after plugin activation to make sure it will work on your server\u003C\u002Fli>\n\u003Cli>works with all types of WordPress installations: domain, subdomain, subdirectory, multisite\u002Fnetwork\u003C\u002Fli>\n\u003Cli>works on Apache and NGiNX\u003C\u002Fli>\n\u003Cli>automatically generate thumbnail for new uploaded PDFs\u003C\u002Fli>\n\u003Cli>(re)generate thumbnails for existing PDFs in Media library\u003C\u002Fli>\n\u003Cli>set maximum width of PDF thumbnail\u003C\u002Fli>\n\u003Cli>set maximum height of PDF thumbnail\u003C\u002Fli>\n\u003Cli>set image quality of PDF thumbnail\u003C\u002Fli>\n\u003Cli>set image file type of PDF thumbnail\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Shortcodes\u003C\u002Fh3>\n\u003Ch3>pdf_thumbnail\u003C\u002Fh3>\n\u003Cp>Maybe you want to display PDF thumbnail by using a shortcode\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[pdf_thumbnail id=\"123\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>pdf_thumbnail_url\u003C\u002Fh3>\n\u003Cp>Maybe you want to display PDF thumbnail url by using a shortcode\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[pdf_thumbnail_url id=\"123\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>pdf_clickable_thumbnail\u003C\u002Fh3>\n\u003Cp>Maybe you want to display clickable PDF thumbnail that will open PDF in new tab\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[pdf_clickable_thumbnail id=\"123\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp> \u003C\u002Fp>\n\u003Ch3>Functions\u003C\u002Fh3>\n\u003Ch3>get_pdf_thumbnail_url\u003C\u002Fh3>\n\u003Cp>If you want to return PDF thumbnail URL you can use\u003C\u002Fp>\n\u003Cpre>\u003Ccode>get_pdf_thumbnail_url( $pdf_id )\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>it works similar to \u003Ccode>wp_get_attachment_url\u003C\u002Fcode> and it will return something like\u003C\u002Fp>\n\u003Cpre>\u003Ccode>https:\u002F\u002Fsite.com\u002Fwp-content\u002Fuploads\u002F2022\u002F01\u002Fexample.pdf.png\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>get_pdf_thumbnail_path\u003C\u002Fh3>\n\u003Cp>If you want to return PDF thumbnail URL you can use\u003C\u002Fp>\n\u003Cpre>\u003Ccode>get_pdf_thumbnail_path( $pdf_id )\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>it works similar to \u003Ccode>get_attached_file\u003C\u002Fcode> and it will return something like\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u002Fwww\u002Fsite.com\u002Fwp-content\u002Fuploads\u002F2022\u002F01\u002Fexample.pdf.png\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>get_pdf_thumbnail_image_src\u003C\u002Fh3>\n\u003Cp>If you want to return PDF thumbnail url, width and height you can use\u003C\u002Fp>\n\u003Cpre>\u003Ccode>get_pdf_thumbnail_image_src( $pdf_id )\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>it works similar to \u003Ccode>wp_get_attachment_image_src\u003C\u002Fcode> and it will return something like\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[\n    0 => 'https:\u002F\u002Fsite.com\u002Fwp-content\u002Fuploads\u002F2022\u002F01\u002Fexample.pdf.png',\n    1 => 600,\n    2 => 800\n]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>get_pdf_thumbnail_image\u003C\u002Fh3>\n\u003Cp>If you want to return PDF thumbnail image tag you can use\u003C\u002Fp>\n\u003Cpre>\u003Ccode>get_pdf_thumbnail_image( $pdf_id )\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>it works similar to \u003Ccode>wp_get_attachment_image\u003C\u002Fcode> and it will return something like\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003Cimg src=\"https:\u002F\u002Fsite.com\u002Fwp-content\u002Fuploads\u002F2022\u002F01\u002Fexample.pdf.png\" width=\"600\" height=\"800\" alt=\"example\" loading=\"lazy\">\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp> \u003C\u002Fp>\n\u003Ch3>Hooks\u003C\u002Fh3>\n\u003Ch3>pdf_thumbnail_max_width\u003C\u002Fh3>\n\u003Cp>Maybe you want to change global PDF thumbnail max_width for a specific PDF file\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'pdf_thumbnail_max_width', function( $max_width, $pdf_id ){\n    if( $pdf_id == 123 ){\n        return 1024;\n    }\n    return $max_width;\n}, 10, 2 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>pdf_thumbnail_max_height\u003C\u002Fh3>\n\u003Cp>Maybe you want to change global PDF thumbnail max_width for a specific PDF file\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'pdf_thumbnail_max_height', function( $max_height, $pdf_id ){\n    if( $pdf_id == 123 ){\n        return 768;\n    }\n    return $max_height;\n}, 10, 2 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>pdf_thumbnail_quality\u003C\u002Fh3>\n\u003Cp>Maybe you want to change global PDF thumbnail quality for a specific PDF file\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'pdf_thumbnail_quality', function( $quality, $pdf_id ){\n    if( $pdf_id == 123 ){\n        return 100;\n    }\n    return $quality;\n}, 10, 2 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>pdf_thumbnail_type\u003C\u002Fh3>\n\u003Cp>Maybe you want to change global PDF thumbnail file type for a specific PDF file\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'pdf_thumbnail_type', function( $type, $pdf_id ){\n    if( $pdf_id == 123 ){\n        return 'png'; \u002F\u002F or 'jpg'\n    }\n    return $type;\n}, 10, 2 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>pdf_thumbnail_bgcolor\u003C\u002Fh3>\n\u003Cp>Maybe you want to change default PDF thumbnail background for a specific PDF file\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'pdf_thumbnail_bgcolor', function( $bgcolor, $pdf_id ){\n    if( $pdf_id == 123 ){\n        return 'black'; \u002F\u002F default is 'white'\n    }\n    return $bgcolor;\n}, 10, 2 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>pdf_thumbnail_page_number\u003C\u002Fh3>\n\u003Cp>Maybe you want to PDF thumbnail page number for a specific PDF file\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'pdf_thumbnail_page_number', function( $page, $pdf_id ){\n    if( $pdf_id == 123 ){\n        return 1; \u002F\u002F default is 0\n    }\n    return $page;\n}, 10, 2 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>pdf_thumbnail_filename\u003C\u002Fh3>\n\u003Cp>Maybe you want to PDF thumbnail filename for a specific PDF file\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'pdf_thumbnail_filename', function( $filename, $pdf_id ){\n    if( $pdf_id == 123 ){\n        return str_replace( '.pdf.png', '.png', $filename );\n    }\n    return $filename;\n}, 10, 2 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>pdf_thumbnail_imagick\u003C\u002Fh3>\n\u003Cp>Maybe you want to add watermark to PDF thumbnail for a specific PDF file\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'pdf_thumbnail_imagick', function( $imagick, $pdf_id ){\n    if( $pdf_id == 123 ){\n        \u002F\u002F add your watermark here\n    }\n    return $imagick;\n}, 10, 2 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>get_pdf_thumbnail_image_attributes\u003C\u002Fh3>\n\u003Cp>Maybe you want to change attributes for image tag from \u003Ccode>get_pdf_thumbnail_image\u003C\u002Fcode> function\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'get_pdf_thumbnail_image_attributes', function( $attr, $pdf_id ){\n    $attr['loading'] = 'eager';\n    return $attr;\n}, 10, 2 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>pdf_thumbnail_generated\u003C\u002Fh3>\n\u003Cp>Maybe you want to do something after the thumbnail is generated\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_action( 'pdf_thumbnail_generated', function( $thumbnail_path, $pdf_id ){\n    \u002F\u002F do somthing with the local file $thumbnail_path\n}, 10, 2 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n","Generates thumbnail for PDF files",19502,86,6,"2025-12-01T22:46:00.000Z",[124,125,51,126,127],"creator","generator","pdf","thumbnail","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpdf-thumbnail-generator.1.5.zip","2025-12-06 00:00:00",{"slug":131,"name":132,"version":133,"author":4,"author_profile":5,"description":134,"short_description":135,"active_installs":136,"downloaded":137,"rating":33,"num_ratings":138,"last_updated":139,"tested_up_to":24,"requires_at_least":140,"requires_php":26,"tags":141,"homepage":147,"download_link":148,"security_score":33,"vuln_count":35,"unpatched_count":35,"last_vuln_date":112,"fetched_at":37},"bulk-menu-creator","Bulk menu creator","9.6","\u003Cp>\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FU7gQ4HmcUTs?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003Cbr \u002F>\n\u003Cbr \u002F>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002Fe_3zLGHQouo?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003Cbr \u002F>\n\u003Cbr \u002F>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FP5tFncQkRCg?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003Cbr \u002F>\n\u003C\u002Fp>\n\u003Cul>\n\u003Cli>create multiple menu items at once\u003C\u002Fli>\n\u003Cli>menu items are created from multiline text\u003C\u002Fli>\n\u003Cli>you can provide menu items labels one per line\u003C\u002Fli>\n\u003Cli>use 2 space indent to create subitem\u003C\u002Fli>\n\u003Cli>you can provide menu items URLs one per line – they are automatically paired line by line\u003C\u002Fli>\n\u003Cli>if you don’t provide URLs, then hash is automatically generated for each label\u003C\u002Fli>\n\u003Cli>quick delete menu item with or without all subitems\u003C\u002Fli>\n\u003Cli>quick copy\u002Fclone menu item\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>PRO version features (\u003Ca href=\"https:\u002F\u002Fwp-speedup.eu\u002Fshop\u002Fwordpress-plugins\u002Fpro-plugins\u002Fbulk-menu-creator-pro\u002F\" rel=\"nofollow ugc\">BUY HERE\u003C\u002Fa>):\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n        \u003Cstrong>generate posts directly from the Menus screen\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>no need to leave your Menus screen to create new drafts that you will need later\u003C\u002Fli>\n\u003Cli>generate multiple posts, pages or other post type posts at once\u003C\u002Fli>\n\u003Cli>use 2 space \u002F tab indent to create subpages\u003C\u002Fli>\n\u003Cli>you can provide custom slugs for newly generated posts or let them generate automatically from the titles\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n        \u003Cstrong>duplicate menu functionality\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>works with all the menu items metas\u003C\u002Fli>\n\u003Cli>you will not lose your Polylang Languages settings\u003C\u002Fli>\n\u003Cli>also works with ACF icons or other data\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n        \u003Cstrong>taxonomy terms auto generated menu items\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>select any public taxonomy like Blog post categories or WooCommerce product categories or other custom taxonomies\u003C\u002Fli>\n\u003Cli>you can limit how many terms will be listed\u003C\u002Fli>\n\u003Cli>you can limit how many levels of subterms will be listed\u003C\u002Fli>\n\u003Cli>you can exclude some specific terms\u003C\u002Fli>\n\u003Cli>you can order terms by name, parent, count, or other parameters\u003C\u002Fli>\n\u003Cli>you can show\u002Fhide empty terms\u003C\u002Fli>\n\u003Cli>you can show\u002Fhide terms count (number of assigned posts)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n        \u003Cstrong>post type posts auto generated menu items\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>select any public post type like Posts, Pages, Products or other custom post types\u003C\u002Fli>\n\u003Cli>you can limit how many posts will be listed\u003C\u002Fli>\n\u003Cli>you can limit how many levels of subposts will be listed\u003C\u002Fli>\n\u003Cli>you can exclude some specific posts\u003C\u002Fli>\n\u003Cli>you can filter posts by any term and taxonomy\u003C\u002Fli>\n\u003Cli>you can order posts by title, author, date, or other parameters\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n        \u003Cstrong>Profile menu item\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>show current user in menu\u003C\u002Fli>\n\u003Cli>you can use variables {display_name}, {first_name}, {last_name}, {nickname}, {user_email} to create any custom menu item, like  `Hello John (john@doe.com)` by `Hello {first_name} ({user_email})`\u003C\u002Fli>\n\u003Cli>you can link it to admin profile or author posts URL or choose from WooCommerce account endpoint URLs or to # to use it just as a parent menu item for dropdown\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n        \u003Cstrong>Login \u002F Logout menu item\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>show login and logout links in menu\u003C\u002Fli>\n\u003Cli>you can provide your own login URL or use default WP login\u003C\u002Fli>\n\u003Cli>you can provide your own login and logout redirect URL\u003C\u002Fli>\n\u003Cli>you can provide your own login and logout menu item label and it’s fully translatable with WPML, Polylang or others\u003C\u002Fli>\n\u003Cli>you can use variables {display_name}, {first_name}, {last_name}, {nickname}, {user_email} in logout menu item\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n        \u003Cstrong>special field for hash or $_GET parameters for any post menu item\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>you can write some `#hash` that will be added at the end of the post URL\u003C\u002Fli>\n\u003Cli>you can write some `?get_attribute=123` that will be added at the end of the post URL\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n        \u003Cstrong>automatically generates anchor links menu items for any post\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>click on anchor button to get all anchors from that specific post\u003C\u002Fli>\n\u003Cli>you can select title for every anchor\u003C\u002Fli>\n\u003Cli>you can decide which anchors to add\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n","Create multiple menu items at once or quick delete menu item with or without all subitems",1000,25378,9,"2025-11-19T17:02:00.000Z","4.0",[142,143,144,145,146],"batch","bulk","menu","nav","navigation","https:\u002F\u002Fwp-speedup.eu\u002Fshop\u002Fwordpress-plugins\u002Fpro-plugins\u002Fbulk-menu-creator-pro\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbulk-menu-creator.9.6.zip",{"slug":150,"name":151,"version":152,"author":4,"author_profile":5,"description":153,"short_description":154,"active_installs":155,"downloaded":156,"rating":21,"num_ratings":157,"last_updated":158,"tested_up_to":24,"requires_at_least":68,"requires_php":159,"tags":160,"homepage":165,"download_link":166,"security_score":8,"vuln_count":34,"unpatched_count":35,"last_vuln_date":167,"fetched_at":37},"block-editor-bootstrap-blocks","Block Editor Bootstrap Blocks","6.9.2","\u003Cp>Fully responsive Bootstrap 5 blocks, components and extends for Gutenberg\u003C\u002Fp>\n\u003Cp>Now you can use Gutenberg editor as full-featured website builder.\u003C\u002Fp>\n\u003Cp>Thanks to Bootstrap 5 – the world’s most popular front-end open source toolkit – you can build your layouts in 6 different breakpoints, so they will work perfectly on each device, no matter if your website visitor is on the phone, tablet, laptop or desktop.\u003C\u002Fp>\n\u003Cp>You can use Bootstrap row and columns blocks with detailed settings for each breakpoint and autocomplete extension for bootstrap classes\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Option to load Bootstrap 5 css to editor from plugin if your theme doesn’t contain it\u003C\u002Fli>\n\u003Cli>Option to load Bootstrap 5 css to frontent from plugin if your theme doesn’t contain it\u003C\u002Fli>\n\u003Cli>Option to load Bootstrap 5 js to frontent from plugin if your theme doesn’t contain it\u003C\u002Fli>\n\u003Cli>Option to automatically add .container class to inner container of fullwidth group or cover block\u003C\u002Fli>\n\u003Cli>Option to remove .is-layout-constrained class from fullwidth group block\u003C\u002Fli>\n\u003Cli>Custom breakpoints control – add, remove or change any breakpoint\u003C\u002Fli>\n\u003Cli>Optimize Bootstrap CSS file by disabling not needed options and parts of Bootstrap\u003C\u002Fli>\n\u003Cli>Bootstrap container block\u003C\u002Fli>\n\u003Cli>\n        Bootstrap row block\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Use quick selector to instantly select row while editing\u003C\u002Fli>\n\u003Cli>Use predefined layouts\u003C\u002Fli>\n\u003Cli>Generate custom layout instantly just by adding columns counts, eg. 2+8+2\u003C\u002Fli>\n\u003Cli>Use any amount of columns\u003C\u002Fli>\n\u003Cli>\n                Use 6 different breakpoints to setup:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Vertical alignment (align-items-*)\u003C\u002Fli>\n\u003Cli>Horizontal alignment (justify-content-*)\u003C\u002Fli>\n\u003Cli>Gutter (g-*)\u003C\u002Fli>\n\u003Cli>Row columns (row-columns-*)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n        Bootstrap column block\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Use quick selector to instantly select column while editing\u003C\u002Fli>\n\u003Cli>\n                Use 6 different breakpoints to setup:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Size (col-*)\u003C\u002Fli>\n\u003Cli>Offset (offset-*)\u003C\u002Fli>\n\u003Cli>Order (order-*)\u003C\u002Fli>\n\u003Cli>Vertical alignment (align-self-*)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n        Bootstrap accordion block\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Two styles – default and flush\u003C\u002Fli>\n\u003Cli>Always open option\u003C\u002Fli>\n\u003Cli>First open on load option\u003C\u002Fli>\n\u003Cli>Unlimited amount of accordion items\u003C\u002Fli>\n\u003Cli>Unlimited accordion item inner blocks content\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n        Bootstrap tabs block\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Three styles – tabs, pills and text\u003C\u002Fli>\n\u003Cli>Possibility to reorder tabs\u003C\u002Fli>\n\u003Cli>Possibility to add and remove tabs\u003C\u002Fli>\n\u003Cli>Unlimited amount of tabs items\u003C\u002Fli>\n\u003Cli>Unlimited tab item inner blocks content\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Component for margin and padding Spacing for any block for 6 different breakpoints\u003C\u002Fli>\n\u003Cli>Component for Display visibility – display per breakpoints, print display, logged in\u002Fout display\u003C\u002Fli>\n\u003Cli>Component for Size – width, min-width, max-width, height, min-height, max-height, aspect-ratio for every breakpoint\u003C\u002Fli>\n\u003Cli>Component for Flex properties – control flex containers and item\u003C\u002Fli>\n\u003Cli>Component for Position properties – control position and z-index\u003C\u002Fli>\n\u003Cli>Component for Snapping for group block, so you can push some content out of container (or just background)\u003C\u002Fli>\n\u003Cli>Component for Alignment, so you can align your text to the left for PC but to the center for mobile\u003C\u002Fli>\n\u003Cli>Component for autocomplete Bootstrap classes\u003C\u002Fli>\n\u003Cli>Extended formats – uppercase, capitalize, lowercase, stretched-link, mark, non-breaking space (nbsp) and soft-hypen (shy) inserter\u003C\u002Fli>\n\u003Cli>Extended shortcuts – shift+alt+[1..7] to switch between paragraph and headings levels – same as in classic editor (tinymce wysiwyg)\u003C\u002Fli>\n\u003C\u002Ful>\n","Fully responsive Bootstrap 5 blocks, components and extends for Gutenberg",900,19051,8,"2025-12-17T15:00:00.000Z","7.4",[161,162,163,164,108],"breakpoints","columns","grid","layout","https:\u002F\u002Fwp-speedup.eu\u002Fshop\u002Fwordpress-plugins\u002Fpro-plugins\u002Fblock-editor-bootstrap-blocks-pro\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fblock-editor-bootstrap-blocks.6.9.2.zip","2024-11-20 00:00:00",{"slug":169,"name":170,"version":171,"author":4,"author_profile":5,"description":172,"short_description":173,"active_installs":174,"downloaded":175,"rating":33,"num_ratings":95,"last_updated":176,"tested_up_to":24,"requires_at_least":25,"requires_php":26,"tags":177,"homepage":55,"download_link":183,"security_score":33,"vuln_count":35,"unpatched_count":35,"last_vuln_date":112,"fetched_at":37},"admin-bar-fix","Admin Bar Fix","2.5","\u003Cp>Fix the broken layout when too many items are displayed in your admin bar, remove the annoying top margin, hide some unnecessary items from your admin bar\u003C\u002Fp>\n\u003Cul>\n\u003Cli>fix multiline admin bar\u003C\u002Fli>\n\u003Cli>remove 32px margin inserted by WordPress\u003C\u002Fli>\n\u003Cli>hide admin bar for any user role\u003C\u002Fli>\n\u003Cli>hide admin bar on smaller screens\u003C\u002Fli>\n\u003Cli>hide admin bar items that you do not need\u003C\u002Fli>\n\u003Cli>\n        select from 3 admin bar styles:\u003C\u002Fp>\n\u003Col>\n\u003Cli>ghost – set lower opacity and smaller height and expand it on hover\u003C\u002Fli>\n\u003Cli>vertical – show admin bar as icons in a vertical panel and expand it on hover\u003C\u002Fli>\n\u003Cli>icon – hide admin bar into a single small icon and expand it on hover\u003C\u002Fli>\n\u003Cli>bottom – move admin bar to the bottom of your screen, you can also set similar things like in the ghost style\u003C\u002Fli>\n\u003C\u002Fol>\n\u003C\u002Fli>\n\u003Cli>\n        settings:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Position\u003C\u002Fli>\n\u003Cli>Inactive opacity\u003C\u002Fli>\n\u003Cli>Inactive size\u003C\u002Fli>\n\u003Cli>Animation duration\u003C\u002Fli>\n\u003Cli>Mouse enter delay\u003C\u002Fli>\n\u003Cli>Mouse leave delay\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n","Fix broken layout when too many items are displayed in the admin bar, remove annoying top margin, hide some unnecessary items from your admin bar",500,4134,"2025-12-01T21:59:00.000Z",[178,179,180,181,182],"adjustment","adminbar","enhancement","fix","margin","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fadmin-bar-fix.2.5.zip",{"slug":185,"name":186,"version":187,"author":4,"author_profile":5,"description":188,"short_description":189,"active_installs":190,"downloaded":191,"rating":192,"num_ratings":105,"last_updated":193,"tested_up_to":24,"requires_at_least":68,"requires_php":68,"tags":194,"homepage":31,"download_link":200,"security_score":33,"vuln_count":35,"unpatched_count":35,"last_vuln_date":112,"fetched_at":37},"cf7-email-body-tinymce-editor","Contact Form 7 – email body TinyMCE editor","1.8","\u003Cp>This plugin will replace raw textarea by TinyMCE WYSIWYG editor when “Use HTML content type” is checked.\u003Cbr \u002F>\nWorks for both Mail and Mail (2) in Contact Form 7.\u003C\u002Fp>\n","TinyMCE WYSIWYG editor when \"Use HTML content type\" is checked in Contact Form 7 Mail and Mail (2)",400,6660,92,"2025-12-01T22:22:00.000Z",[195,196,197,198,199],"contact-form-7","editor","email-message-body","tinymce","wysiwyg","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcf7-email-body-tinymce-editor.1.8.zip",{"slug":202,"name":203,"version":204,"author":4,"author_profile":5,"description":205,"short_description":206,"active_installs":33,"downloaded":207,"rating":33,"num_ratings":121,"last_updated":208,"tested_up_to":24,"requires_at_least":68,"requires_php":68,"tags":209,"homepage":214,"download_link":215,"security_score":33,"vuln_count":35,"unpatched_count":35,"last_vuln_date":112,"fetched_at":37},"disable-unused-block-editor-blocks","Disable Unused Block Editor Blocks","5.7","\u003Cp>Disable Unused Block Editor Blocks is a must-have tool for any WordPress website built with Gutenberg Block Editor.\u003Cbr \u002F>\nManage your blocks and enable or disable any block globally.\u003C\u002Fp>\n\u003Cp>But how would you know which block you can disable?\u003Cbr \u002F>\nWhat if you disable something that is used somewhere and it will break your website layout?\u003Cbr \u002F>\nNo worries!\u003Cbr \u002F>\nThis plugin will show you which block is already used in any post, page, custom post type or even in widgets and sidebars, so you can easily decide if it is safe to disable that block.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>list of all blocks with their icons, titles, names and descriptions divided into categories\u003C\u002Fli>\n\u003Cli>globally enable or disable any block\u003C\u002Fli>\n\u003Cli>works with reusable or nested blocks and even with blocks used in widget areas\u003C\u002Fli>\n\u003Cli>works with custom blocks, any additional block plugins and even with blocks created with Advanced Custom Fields (ACF)\u003C\u002Fli>\n\u003Cli>see whether the block is used somewhere, so you will never disable wrong block and break something on your website\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>PRO version features (\u003Ca href=\"https:\u002F\u002Fwp-speedup.eu\u002Fshop\u002Fwordpress-plugins\u002Fpro-plugins\u002Fdisable-unused-block-editor-blocks-pro\u002F\" rel=\"nofollow ugc\">BUY HERE\u003C\u002Fa>):\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>see a detailed usage report – where exactly is the block used and you can directly visit or edit that post\u003C\u002Fli>\n\u003Cli>see all styles and variations for every single block\u003C\u002Fli>\n\u003Cli>work with groups – group blocks by category, activation status or usage status\u003C\u002Fli>\n\u003Cli>enable or disable all blocks in a group with a single click\u003C\u002Fli>\n\u003Cli>search and filter blocks by name, title or description\u003C\u002Fli>\n\u003Cli>change post statuses applied for usage status detection – in free version it is set to publish, future, draft, pending and private\u003C\u002Fli>\n\u003Cli>export and import settings\u003C\u002Fli>\n\u003Cli>force disable blocks defined in theme disabled_blocks.json file\u003C\u002Fli>\n\u003Cli>manage core\u002Fembed variations as separate blocks\u003C\u002Fli>\n\u003C\u002Ful>\n","Remove unused or unwanted blocks from Gutenberg block editor",4635,"2025-12-01T22:10:00.000Z",[210,211,212,213],"disable-gutenberg-blocks","find-used-and-unused-blocks","gutenberg","manage-blocks","https:\u002F\u002Fwp-speedup.eu\u002Fshop\u002Fwordpress-plugins\u002Fpro-plugins\u002Fdisable-unused-block-editor-blocks-pro\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdisable-unused-block-editor-blocks.5.7.zip",{"slug":217,"name":218,"version":219,"author":4,"author_profile":5,"description":220,"short_description":221,"active_installs":222,"downloaded":223,"rating":35,"num_ratings":35,"last_updated":224,"tested_up_to":24,"requires_at_least":89,"requires_php":90,"tags":225,"homepage":75,"download_link":226,"security_score":33,"vuln_count":35,"unpatched_count":35,"last_vuln_date":112,"fetched_at":37},"images-to-avif","Images to AVIF","1.1","\u003Cp>Statistics say that AVIF format can save more than a half of the page weight without losing images quality.\u003Cbr \u002F>\nConvert PNG, JPG, GIF and WEBP images to AVIF and speed up your web, save visitors download data, make your Google ranking better.\u003Cbr \u002F>\nInstall also Images to WebP plugin if you want to have fallback to WebP and then to the original file.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>automated test after plugin activation to make sure it will work on your server\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>works with all types of WordPress installations: domain, subdomain, subdirectory, multisite\u002Fnetwork\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>works on Apache and NGiNX\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>image URL will be not changed\u003C\u002Fstrong> so it works everywhere, in \u003Cimg> src, srcset, \u003Cpicture>, even in CSS backgrounds and there is no problem with cache\u003C\u002Fli>\n\u003Cli>\u003Cstrong>original files will be not touched\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>set quality of converted images\u003C\u002Fli>\n\u003Cli>auto convert on upload\u003C\u002Fli>\n\u003Cli>only convert image if AVIF filesize is lower than original image filesize\u003C\u002Fli>\n\u003Cli>bulk convert existing images to AVIF ( you can choose folders )\u003C\u002Fli>\n\u003Cli>bulk convert only missing images\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Hooks for developers\u003C\u002Fh3>\n\u003Ch4>images_to_avif_sizes\u003C\u002Fh4>\n\u003Cp>Maybe you want to disable AVIF for thumbnails\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'images_to_avif_sizes', 'disable_images_to_avif_sizes', 10, 2 );\nfunction disable_images_to_avif_sizes( $sizes, $attachmentId ){\n    unset( $sizes['thumbnail'] );\n    return $sizes;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>images_to_avif_htaccess\u003C\u002Fh4>\n\u003Cp>Maybe you want to modify htaccess rules somehow\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'images_to_avif_htaccess', 'modify_images_to_avif_htaccess', 10, 2 );\nfunction modify_images_to_avif_htaccess( $rewrite_rules ){\n    \u002F\u002F do some magic here\n    return $rewrite_rules;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>images_to_avif_abspath\u003C\u002Fh4>\n\u003Cp>Maybe you use roots.io\u002Fbedrock or other custom folder structure\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'images_to_avif_abspath', 'modify_images_to_avif_abspath', 10, 2 );\nfunction modify_images_to_avif_abspath( $abspath ){\n    return trailingslashit( WP_CONTENT_DIR );\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>$images_to_avif->convert_image()\u003C\u002Fh4>\n\u003Cp>Maybe you want to automatically generate AVIF for other plugins\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_action( 'XXPLUGIN_image_created', 'XX_images_to_avif', 10, 2 );\nfunction XX_images_to_avif( $image_path ){\n    global $images_to_avif;\n    $images_to_avif->convert_image( $image_path );\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n","Convert PNG, JPG, GIF and WEBP images to AVIF and speed up your web loading",60,289,"2026-01-14T09:23:00.000Z",[50,52,53,92],"https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fimages-to-avif.1.1.zip",{"slug":228,"name":229,"version":230,"author":4,"author_profile":5,"description":231,"short_description":232,"active_installs":233,"downloaded":234,"rating":35,"num_ratings":35,"last_updated":235,"tested_up_to":24,"requires_at_least":204,"requires_php":90,"tags":236,"homepage":55,"download_link":242,"security_score":33,"vuln_count":35,"unpatched_count":35,"last_vuln_date":112,"fetched_at":37},"better-share-buttons","Better Share Buttons","1.9.4","\u003Cp>Easily use \u003Ccode>[better_share_buttons]\u003C\u002Fcode> shortcode anywhere you want.\u003Cbr \u002F>\nCreate your own styles, or choose from existing ones.\u003Cbr \u002F>\nThis plugin is optimized for fastest websites – it will not load any JS files and it will load CSS file only when it is needed.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>This plugin allows you to:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>create multiple social share icon styles\u003C\u002Fli>\n\u003Cli>use shortcode to display share icons anywhere you want\u003C\u002Fli>\n\u003Cli>create your own styles in your theme folder\u003C\u002Fli>\n\u003Cli>customize basic settings directly in admin\u003C\u002Fli>\n\u003Cli>use different icons for social networks\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Hooks\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>customize wrapper classes\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'share_buttons_classes', function( $classes, $share_buttons_settings, $share_buttons_id ){\n    $classes[] = 'my-custom-class';\n    return $classes;\n}, 10, 3 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>&nbsp;\u003C\u002Fp>\n\u003Cp>\u003Cstrong>customize wrapper CSS output\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'share_buttons_styles', function( $style, $share_buttons_settings, $share_buttons_id ){\n    $style[] = '--my-var: 50px';\n    return $style;\n}, 10, 3 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>&nbsp;\u003C\u002Fp>\n\u003Cp>\u003Cstrong>customize html form more button\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'better_share_buttons_more', function( $html, $share_buttons_settings, $share_buttons_id ){\n    \u002F\u002F replace SVG icon path with a custom one\n    $html = str_replace( 'M18 14V8h-4v6H8v4h6v6h4v-6h6v-4h-6z', 'M18.2 4.2C18.2 3 17.2 2 16 2s-2.2 1-2.2 2.2v9.7H4.2C3 13.8 2 14.8 2 16s1 2.2 2.2 2.2h9.7v9.7c0 1.2 1 2.2 2.2 2.2s2.2-1 2.2-2.2v-9.7H28c1.2 0 2.2-1 2.2-2.2s-1-2.2-2.2-2.2h-9.7V4.2z', $html );\n    return $html;\n}, 10, 3 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>&nbsp;\u003C\u002Fp>\n\u003Cp>\u003Cstrong>add custom icon for any network\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'share_buttons_icons', function( $icon, $slug, $share_buttons_settings, $share_buttons_id ){\n    if( $slug == 'facebook' ){\n        \u002F\u002F add custom SVG path and you will be able to select it in admin\n        $icon[] = 'M29.3 16c0-7.4-6-13.3-13.3-13.3C8.6 2.7 2.7 8.6 2.7 16c0 6.5 4.6 11.8 10.7 13.1V20h-2.7v-4h2.7v-3.3c0-2.6 2.1-4.7 4.7-4.7h3.3v4h-2.7c-.7 0-1.3.6-1.3 1.3V16h4v4h-4v9.3c6.7-.7 11.9-6.4 11.9-13.3z';\n    }\n    return $icon;\n}, 10, 4 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>&nbsp;\u003C\u002Fp>\n\u003Cp>\u003Cstrong>control shared URL\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'better_share_buttons_permalink', function( $url ){\n    \u002F\u002F ...\n    return $url;\n});\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>&nbsp;\u003C\u002Fp>\n\u003Cp>\u003Cstrong>control shared title\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'better_share_buttons_title', function( $title ){\n    \u002F\u002F ...\n    return $title;\n});\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>&nbsp;\u003C\u002Fp>\n\u003Cp>\u003Cstrong>control HTML output for any network\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'better_share_buttons_link', function( $html, $slug, $share_buttons_settings, $share_buttons_id ){\n    if( $slug == 'facebook' ){\n        $html = str_replace( 'https:\u002F\u002Ffacebook.com\u002Fsharer\u002Fsharer.php?', 'https:\u002F\u002Ffacebook.com\u002Fsharer\u002Fsharer.php?xxx=yyy&', $html );\n    }\n    return $html;\n}, 10, 4 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>&nbsp;\u003C\u002Fp>\n\u003Cp>\u003Cstrong>add something before or after your share buttons\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_action( 'before_share_buttons', function( $share_buttons_settings, $atts ){ \u002F\u002F or after_share_buttons\n    if( $atts['id'] == 12345 ){\n        echo '\u003Cdiv class=\"before-share-buttons\">' . __( 'Sharing is caring', 'theme' ) . '\u003C\u002Fdiv>';\n    }\n}, 10, 2 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>&nbsp;\u003C\u002Fp>\n\u003Ch3>Create your own styles\u003C\u002Fh3>\n\u003Cp>Create new folder \u003Ccode>better-share-buttons\u003C\u002Fcode> inside your theme folder and put iniside style files \u003Ccode>xyz.css\u003C\u002Fcode> and \u003Ccode>xyz.json\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Style \u003Ccode>xyz\u003C\u002Fcode> will automatically appear in the admin settings.\u003C\u002Fp>\n\u003Cp>Content of JSON file is used to manipulate settings in admin when you select that style:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>{\n    \"visible_buttons\": 999,\n    \"bsb_mx\": 0,\n    \"bsb_my\": 0,\n    \"bsb_px\": 5,\n    \"bsb_py\": 5,\n    \"bsb_br\": 0,\n    \"bsb_fz\": 0,\n    \"bsb_iz\": 32,\n    \"bsb_lls\": 0,\n    \"bsb_lrs\": 0\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Content of CSS file should define your style:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>.better_share_buttons.bsb-style-xyz{}\n\u003C\u002Fcode>\u003C\u002Fpre>\n","Easily use [better_share_buttons] shortcode anywhere you want.",20,1529,"2025-11-06T10:32:00.000Z",[237,238,239,240,241],"buttons","icons","share","sharing","social-media","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbetter-share-buttons.1.9.4.zip"]