Advertisement
Guest User

Untitled

a guest
Oct 13th, 2019
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.84 KB | None | 0 0
  1. const renameCoreBlocksDefaultClassNames = (className, blockName) => {
  2. if (blockName === 'core/quote') {
  3. return 'post__quote';
  4. }
  5.  
  6. if (blockName === 'core/image') {
  7. return 'post__figure';
  8. }
  9.  
  10. return className;
  11. };
  12.  
  13. const coreImageBlock = props => {
  14. if (props.className.includes('wp-block-image')) {
  15. props.className = props.className.replace('wp-block-image ', '')
  16. }
  17.  
  18. if (typeof props.children.props === 'undefined') {
  19. return props;
  20. }
  21.  
  22. const children = props.children.props.children;
  23.  
  24. if (children[0]) {
  25. Object.assign(children[0].props, {
  26. className: `post__image ${children[0].props.className}`,
  27. });
  28. }
  29.  
  30. if (children[1]) {
  31. Object.assign(children[1].props, {
  32. className: 'post__figcaption',
  33. });
  34. }
  35.  
  36. return props;
  37. }
  38.  
  39. const coreQuoteBlock = props => {
  40. if (props.className.includes('wp-block-quote')) {
  41. props.className = props.className.replace('wp-block-quote', '')
  42. }
  43.  
  44. const children = props.children;
  45.  
  46. if (children[0]) {
  47. const message = children[0];
  48.  
  49. message.props.value = message.props.value.replace(/<p>/gi, '<p class="post__quote__text">')
  50. }
  51.  
  52. if (children[1]) {
  53. Object.assign(children[1].props, {
  54. className: 'post__quote__cite',
  55. });
  56. }
  57.  
  58. return props;
  59. }
  60.  
  61. const classNamesForNestedElements = (props, blockType) => {
  62. if (blockType.name === 'core/image') {
  63. coreImageBlock(props);
  64. }
  65.  
  66. if (blockType.name === 'core/quote') {
  67. coreQuoteBlock(props);
  68. }
  69.  
  70. return props;
  71. };
  72.  
  73. wp.hooks.addFilter(
  74. 'blocks.getBlockDefaultClassName',
  75. 'your-namespace/block-filters',
  76. renameCoreBlocksDefaultClassNames
  77. );
  78.  
  79. wp.hooks.addFilter(
  80. 'blocks.getSaveContent.extraProps',
  81. 'your-namespace/block-filters',
  82. classNamesForNestedElements
  83. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement