Skip to content

Instantly share code, notes, and snippets.

@sudar
sudar / store-post-meta-gutenberg.js
Created August 6, 2020 09:32
store-post-meta-gutenberg
const { domReady } = wp;
const { useMemo } = wp.element;
const { TextControl } = wp.components;
const { select, useSelect, useDispatch } = wp.data;
const { PluginDocumentSettingPanel } = wp.editPost;
const { registerPlugin } = wp.plugins;
const { __ } = wp.i18n;
/**
* Output the Meta panel for Report pages.
@sudar
sudar / kses.php
Created August 4, 2020 05:58
Sample code to demonstrate the issue with wp_kses and allowed_html for sanitizing svg's that contain attributes with numbers at the end
<?php
/**
* Sample code to demonstrate the issue with wp_kses and allowed_html for sanitizing svg's that contain attributes with numbers at the end.
*/
$svg = <<<SVG
<svg>
<path x1="10" y1="10"/>
</svg>
SVG;
@sudar
sudar / backup.sh
Created April 14, 2020 03:44
Bash script to backup WordPress sites. Add this to a cron job and run it every day
#!/bin/bash
NOW=$(date +%Y-%m-%d-%H-%M-%S)
SQL_FILE=${NOW}_db.sql
# Backup database
/usr/local/bin/wp db export ../backups/$SQL_FILE --add-drop-table
# Compress the database file
gzip ../backups/$SQL_FILE
@sudar
sudar / exclude-attachments.php
Created November 17, 2018 05:37
Exclude attachments from getting deleted using the Bulk Delete Attachments add-on for Bulk Delete plugin
<?php
add_filter( 'bd_delete_attachment_excluded_attachment_ids', 'prefix_exclude_attachment_ids_from_deletion' );
function prefix_exclude_attachment_ids_from_deletion( $attachment_ids ) {
return array(
100,
111,
112,
);
}
@sudar
sudar / capability.php
Last active August 7, 2017 12:39
Change the capability that is required for viewing email logs
<?php
function wpel_change_email_log_user_role( $capability ) {
return 'manage_options' // change this to the capability that you want.
}
add_filter( 'el_view_email_log_capability', 'wpel_change_email_log_user_role' );
@sudar
sudar / dump-taxonomies.php
Last active January 30, 2017 11:15
Dump All Taxonomies for debugging
<?php
/**
* Plugin Name: Dump Taxonomy
* Plugin URI: http://bulkwp.com
* Description: Dump all Taxonomy for debugging
* Version: 0.1
* License: GPL
* Author: Sudar
* Author URI: http://sudarmuthu.com/
*/
@sudar
sudar / last-page.php
Last active June 18, 2016 06:11
How to find if you are on the last page of a multi-page post in WordPress. Explanation at http://sudarmuthu.com/blog/how-to-find-if-you-are-on-the-last-page-of-a-multi-page-post-in-wordpress/
<?php
/**
* Is the current page the last page of the multi-page post.
*
* @return bool True if last page, False otherwise.
*/
function is_last_page() {
global $page, $numpages, $multipage;
if ( $multipage ) {
@sudar
sudar / error_msg.php
Created June 27, 2015 08:10
Creating single select WordPress taxonomies. Explanation at http://sudarmuthu.com/blog/creating-single-select-wordpress-taxonomies/
<?php
/**
* Display an error message at the top of the post edit screen explaining that ratings is required.
*
* Doing this prevents users from getting confused when their new posts aren't published, as we
* require a valid rating custom taxonomy.
*
* @param WP_Post The current post object.
*/
function show_required_field_error_msg( $post ) {
@sudar
sudar / Customfile-memory.rb
Last active November 1, 2018 11:01
Mapping plugin folder in VVV using shared folders. Details at http://sudarmuthu.com/blog/mapping-plugin-folder-in-vvv-using-shared-folders/
config.vm.provider "virtualbox" do |v|
v.memory = 2048
end
@sudar
sudar / gist:d362472ef9b1f6b6ffef
Created February 2, 2015 14:06
vip-quickstart error output
$ v up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Fixed port collision for 22 => 2222. Now on port 2201.
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
default: Adapter 2: hostonly
==> default: Forwarding ports...
default: 22 => 2201 (adapter 1)