Skip to content

Instantly share code, notes, and snippets.

View BenBroide's full-sized avatar

Ben Broide BenBroide

  • New York
View GitHub Profile
<?php
function sgf_meta_fields() {
$fields_array = apply_filters( 'sgf_register_fields', [] );
foreach ( $fields_array as $field ) {
// Ensure post type exists and field name is valid
if ( ! $field['post_type'] || ! post_type_exists( $field['post_type'] ) || ! $field['meta_key'] || ! is_string( $field['meta_key'] ) ) {
return;
}
// Using Null Coalesce Operator to set defaults
@BenBroide
BenBroide / RepeaterFieldHoc.js
Created January 1, 2021 12:48
Repeater Field Hoc for Gutenberg
const {withSelect, withDispatch, useSelect} = wp.data
const { TextControl} = wp.components
const RepeaterControlHoc = ({field}) => {
const {meta_key, label, show_in_rest} = field
let arrayValues = useSelect(
select => select('core/editor').getEditedPostAttribute('meta')?.[meta_key]
);
@BenBroide
BenBroide / create-plugin.bash
Last active April 19, 2021 14:11
WordPress Cli create plugin + Create React App
cd /your/instllation/path/wp-content/plugins
// Create custom plugin
wp scaffold plugin wp-create-react-app-concept --activate --skip-tests
cd wp-create-react-app-concept
// We need only react-plugin.php for our demo - deleting all other files&nbsp;&nbsp;
ls | grep -v wp-create-react-app-concept.php | xargs rm
// Create React App
@BenBroide
BenBroide / react-plugin.php
Created May 28, 2020 08:43
CRA + WordPress. Front end. Class plugin
<?php
/**
* Plugin Name: WordPress React Create App
* Description: Load React app in WorePress Admin concept
* Author: Ben Broide
* Text Domain: react-plugin
* Domain Path: /languages
* Version: 0.1.0
*
* @package React_Plugin
<?php
/**
* Plugin Name: WordPress React Create App
* Description: Load React app in WorePress Admin concept
* Author: Ben Broide
* Text Domain: react-plugin
* Domain Path: /languages
* Version: 0.1.0
*
* @package React_Plugin
@BenBroide
BenBroide / react-plugin.php
Created May 28, 2020 08:24
CRA + WordPress. Front end. Function plugin
<?php
/**
* Plugin Name: WordPress React Create App
* Description: Load React app in WorePress Admin concept
* Author: Ben Broide
* Text Domain: react-plugin
* Domain Path: /languages
* Version: 0.1.0
*
* @package React_Plugin
@BenBroide
BenBroide / index.js
Created May 28, 2020 08:23
CRA + WordPress. Front end. Function plugin
import React from 'react'
import ReactDOM from 'react-dom'
import './index.css'
import App from './App'
import * as serviceWorker from './serviceWorker'
const reactAppData = window.rpReactPlugin || {}
const { appSelector } = reactAppData
const appAnchorElement = document.querySelector(appSelector)
@BenBroide
BenBroide / index.js
Created May 28, 2020 08:16
CRA + WordPress. wp admin. Function plugin
import React from 'react'
import ReactDOM from 'react-dom'
import './index.css'
import App from './App'
import * as serviceWorker from './serviceWorker'
const reactAppData = window.rpReactPlugin || {}
const { appSelector } = reactAppData
const appAnchorElement = document.querySelector(appSelector)
@BenBroide
BenBroide / package.json
Created May 28, 2020 08:15
CRA + WordPress. wp admin. Function plugin
{
"homepage": "/wp-content/plugins/wp-create-react-app-concept/react-app/build",
"name": "react-app",
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^4.2.4",
"@testing-library/react": "^9.3.2",
"@testing-library/user-event": "^7.1.2",
"react": "^16.13.1",
@BenBroide
BenBroide / react-plugin.php
Last active December 22, 2020 18:58
CRA + WordPress. wp admin. Function plugin
<?php
/**
* Plugin Name: WordPress React Create App
* Description: Load React app in WorePress Admin concept
* Author: Ben Broide
* Text Domain: react-plugin
* Domain Path: /languages
* Version: 0.1.0
*
* @package React_Plugin