Skip to content

Instantly share code, notes, and snippets.

View avillegasn's full-sized avatar

Antonio Villegas avillegasn

View GitHub Profile
@avillegasn
avillegasn / install-wp-plugins.php
Created January 10, 2024 10:18 — forked from hansschuijff/install-wp-plugins.php
Programmatically install and activate wordpress plugins
<?php
/**
* Plugin Name: Activate required plugins.
* Description: Programmatically install and activate plugins based on a runtime config.
* Version: 1.0
* Author: Hans Schuijff
* Author URI: http://dewitteprins.nl
* License: MIT
* License URI: http://www.opensource.org/licenses/mit-license.php
*/
@avillegasn
avillegasn / function-documentation.php
Last active December 2, 2019 11:31
Creating a function
<?php
/**
* Sends and email when a post is published.
*
* Sends and email using wp_mail standard WordPress function including data about
* the post being published.
*/
@avillegasn
avillegasn / detect-unused-images.sql
Last active September 23, 2019 12:58
Detect and remove unused images in WordPress
SELECT
*
FROM
wp_posts i
WHERE
i.post_type = 'attachment'
AND
NOT EXISTS (SELECT * FROM wp_posts p WHERE p.ID = i.post_parent)
AND
NOT EXISTS (SELECT * FROM wp_postmeta pm WHERE pm.meta_key = '_thumbnail_id' AND pm.meta_value = i.ID)
@avillegasn
avillegasn / my-component.js
Last active June 28, 2019 07:55
Extending @wordpress/scripts to load SVG files inside JSX files.
import {
Component,
Fragment,
} from '@wordpress/element';
import Icon from './icon.svg';
class MyComponent extends Component {
render() {
return (
@avillegasn
avillegasn / package.json
Created June 3, 2019 08:36
Content of package.json file to use @wordpress/scripts package
{
"name": "my-wp-plugin",
"version": "1.0.0",
"description": "My WP plugin description",
"keywords": [
"my",
"wordpress",
"plugin"
],
"author": "avillegasn",
@avillegasn
avillegasn / settings-link.php
Last active August 22, 2022 08:55
Add a settings link under your plugin title in the list of plugins
@avillegasn
avillegasn / only-for-admins.php
Last active February 27, 2019 14:01
Code snippets to hide/manage routes in WordPress REST API
<?php
add_filter( 'rest_authentication_errors', function( $result ) {
if ( ! empty( $result ) ) {
return $result;
}
if ( ! is_user_logged_in() ) {
return new WP_Error( 'rest_not_logged_in', 'You are not currently logged in.', array( 'status' => 401 ) );
}
if ( ! current_user_can( 'administrator' ) ) {
@avillegasn
avillegasn / react-ui-without-jsx.js
Last active February 4, 2019 11:25
React UI with JSX syntax.
class Product extends Component {
render() {
return wp.element.createElement(
"div",
{ className: "product" },
wp.element.createElement(
"p",
null,
this.props.name
)
@avillegasn
avillegasn / gutenberg.js
Last active October 9, 2019 07:36
Fragments of code to add a custom button to Gutenberg rich text blocks
import ElementIcon from '../images/logo.svg';
const { Fragment } = wp.element;
const { __ } = window.wp.i18n;
const { registerFormatType, unregisterFormatType } = window.wp.richText;
const { RichTextToolbarButton } = window.wp.blockEditor;
unregisterFormatType( 'nelio/button' );
registerFormatType( 'nelio/button', {
@avillegasn
avillegasn / acf-export.json
Last active November 26, 2018 11:33
Plugin file to use different image sizes with Nelio Content and Advanced Custom Fields
[
{
"key": "group_5bf27651e03b6",
"title": "Social Images",
"fields": [
{
"key": "field_5bf2766a5c07d",
"label": "Facebook",
"name": "nc-facebook-featured-image",
"type": "image",