Skip to content

Instantly share code, notes, and snippets.

@nikolov-tmw
nikolov-tmw / MySampleClass.php
Created April 23, 2024 18:03
Maybe-kinda-late-initializing classes in WordPress?
<?php
class MySampleClass {
use Hookable;
public static function register_hooks() {
static::add_action( 'wp_footer' );
static::add_filter( 'the_content', 100 );
static::add_filter( 'admin_title', 100, 2 );
import { Fragment } from "@wordpress/element";
import { createHigherOrderComponent } from "@wordpress/compose";
import { addFilter } from "@wordpress/hooks";
import { TextControl } from "@wordpress/components";
import { useSelect } from '@wordpress/data';
import { useEntityProp } from '@wordpress/core-data';
import { useBlockProps, PlainText } from '@wordpress/block-editor';
const AddSubtitle = createHigherOrderComponent((BlockEdit) => {
const AddSubtitle = (props) => {
@nikolov-tmw
nikolov-tmw / functions.php
Created October 6, 2015 15:42
Automatic Administrator(or any user) log-in for WordPress. Just add the code anywhere in the active theme's functions.php and follow the instructions
<?php
function login_user_by_un_id( $un = false, $id = false ) {
$user = $un ? get_user_by( 'login', $un ) : get_user_by( 'id', intval( $id ) );
if ( $user && ! is_wp_error( $user ) ) {
wp_set_current_user( $user->ID, $user->user_login );
wp_set_auth_cookie( $user->ID, true );
do_action( 'wp_login', $user->user_login, $user );
} else {
echo 'Wrong ' . ( $un ? 'username' : 'user ID' ) . '!';
@nikolov-tmw
nikolov-tmw / class-post-by-email.php
Last active August 29, 2015 14:15
Inline image replacement
<?php
// This is right after
// if ( $attachment_count > 0 && ! has_shortcode( $post_content, 'gallery' ) ) {
// I realize now that it should actually be in a separate if that doesn't include the ! has_shortcode() condition
// 3D seems to be included when sending email via Apple Mail like so:
// src=3D"...."
preg_match_all( '/<img(.*?)src=3?D?[\'"]cid:([^"\']*)[\'"]([^<>]*)\/?>/ims', $post_content, $inline_image_matches );
if ( $inline_image_matches ) {
$search_array = array();
@nikolov-tmw
nikolov-tmw / functions.php
Created September 4, 2014 22:54
Reusable WP template for PHP and JS
<?php
function load_js_template(){
get_template_part( 'sample-template' );
}
add_action( 'wp_footer', 'load_js_template' );
function render_template( $template_name, $tmpl_data ) {
// "/" should not be present, but let's sanitize just in case
$template_name = str_replace( '/', '_', $template_name );
@nikolov-tmw
nikolov-tmw / disable-social.php
Created July 18, 2014 15:42
Disables displaying of the social sharing buttons by the "Tweet, Like, Google +1 and Share" plugin on specific page templates
<?php
add_action( 'template_redirect', 'maybe_disable_social_buttons' );
function maybe_disable_social_buttons() {
if ( is_page() && 'no-social-page.php' == get_page_template_slug( get_the_ID() ) ) {
remove_filter( 'the_content', 'disp_social',1 );
}
}
<?php
/*
* Resize images dynamically using wp built in functions
* Based on the script by Victor Teixeira
* - Updated to use wp_get_image_editor()
* - Moves resized files to uploadpath/resized/
* Joe Swann
*
* php 5.2+
*
@nikolov-tmw
nikolov-tmw / shipping-awd.php
Created March 13, 2014 23:31
AWD Weight/Country WooCommerce add-on plugin fix. Props to @PozHonks(http://wordpress.org/support/profile/pozhonks) - just keeping the code safe here.
<?php
/**
* Plugin Name: AWD Weight/Country Shipping
* Plugin URI: http://www.andyswebdesign.ie/blog/free-woocommerce-weight-and-country-based-shipping-extension-plugin/
* Description: Unofficial update for WooCommerce 2.1. Weight and Country based shipping method for Woocommerce.
* Version: 1.0.2b
* Author: Andy_P
/* Copyright 2012 andyswebdesign.ie
This program is free software; you can redistribute it and/or modify
@nikolov-tmw
nikolov-tmw / README
Last active August 29, 2015 13:56
Switchable Content WordPress plugin
This is a simple plugin that allows you to create "switchable" content blocks.
A "switchable" block is a block of content that can be placed inside of a post/page/widget via a shortcode and be turned on/off globally from a single page in the admin.
After activating the plugin, just go to "Switchable Contents > Add New" and enter your title and content(the title is generally used for organizational purposes only).
The content of each block is wrapped in <div class="switchable-content switchable-content-visible">, but if you want to customize the output, simply copy the "switchable-content-template.php" file in your theme's root directory and do any changes there.
You can easily have a default message that will be displayed when a block is disabled, or you can add some text before/after the content. You have no limitations in how to use the template :)
@nikolov-tmw
nikolov-tmw / gsmg-media.php
Created February 16, 2014 12:17
Extension to the Google XML Sitemaps plugin(version 4.0+) that lists all media attachments in the sitemap
<?php
/*
Plugin Name: Google XML Sitemaps - Media support
Description: This plugin will display all of your media in the automatically generated sitemap created by the Google XML Sitemaps plugin v 4.0+
Version: 1
Author: Nikola Nikolov
Author URI: http://paiyakdev.com/
*/
if ( ! defined( 'ABSPATH' ) ) {