deny-list-blocks.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. wp.domReady(() => {
  2. // Remove specific non-embed blocks
  3. const removeBlocks = [
  4. 'core/verse',
  5. 'core/freeform',
  6. 'core/archives',
  7. 'core/calendar',
  8. 'core/tag-cloud',
  9. 'core/rss',
  10. 'core/latest-comments',
  11. 'core/social-links',
  12. 'core/tags',
  13. 'core/comments',
  14. 'core/post-comments-form'
  15. ];
  16. // Log available blocks for debugging
  17. //console.log('Available blocks:', wp.blocks.getBlockTypes().map(block => block.name));
  18. // Remove specified core blocks
  19. removeBlocks.forEach(blockName => {
  20. try {
  21. const block = wp.blocks.getBlockType(blockName);
  22. if (block) {
  23. wp.blocks.unregisterBlockType(blockName);
  24. //console.log(`Successfully removed block: ${blockName}`);
  25. }
  26. } catch (error) {
  27. console.warn(`Failed to remove block ${blockName}:`, error);
  28. }
  29. });
  30. // Only remove specific embed variations
  31. const removeEmbeds = [
  32. 'facebook',
  33. 'instagram',
  34. 'scribd',
  35. 'tiktok',
  36. 'twitter',
  37. 'tumblr',
  38. 'reddit',
  39. 'pinterest',
  40. 'smugmug',
  41. 'crowdsignal',
  42. 'kickstarter',
  43. 'mixcloud',
  44. 'spotify',
  45. 'soundcloud',
  46. 'bandcamp',
  47. 'flickr',
  48. 'wordpress',
  49. 'dailymotion',
  50. 'imgur',
  51. 'issuu',
  52. 'wolfram',
  53. 'reverbnation',
  54. 'cloudup',
  55. 'animoto',
  56. 'ted',
  57. 'bluesky',
  58. 'pocket',
  59. 'speaker-deck',
  60. 'videopress',
  61. 'pocket-casts',
  62. 'amazon-kindle',
  63. 'wolfram-cloud',
  64. 'wordpress-tv'
  65. ];
  66. wp.blocks.getBlockVariations('core/embed')?.forEach(variation => {
  67. if (removeEmbeds.includes(variation.name)) {
  68. wp.blocks.unregisterBlockVariation('core/embed', variation.name);
  69. //console.log(`Removed embed variation: ${variation.name}`);
  70. }
  71. });
  72. });