Skip to content

Instantly share code, notes, and snippets.

Avatar
🏠
Working remotely since 1999

Ihor Vorotnov ihorvorotnov

🏠
Working remotely since 1999
View GitHub Profile
@ihorvorotnov
ihorvorotnov / functions.php
Last active Mar 17, 2021
Painless 3rd party marketing scripts in WordPress
View functions.php
<?php
// Enqueue all js codes combined in a single file.
function enqueue_theme_assets()
{
wp_enqueue_script(
'trackers',
get_stylesheet_directory_uri() . '/js/trackers.js',
null,
null,
View flush-redis-cache.php
<?php
# Check: https://onexa.nl/wordpress/toolbar-link-redis-object-cache/
/**
* Add a link to the Admin Toolbar to easily flush the Redis cache (Redis Object Cache plugin)
*
* @author Hiranthi Herlaar, onexa.nl
* @version 2.0
*
@ihorvorotnov
ihorvorotnov / LocalValetDriver.php
Created Oct 24, 2020 — forked from mishterk/LocalValetDriver.php
A local Valet driver for proxying images to a remote host
View LocalValetDriver.php
<?php
/**
* Class LocalValetDriver
*
* This class demonstrates how we might go about proxying any missing local images to a remote host. i.e; the production
* site. This has been created with WordPress in mind but could be adjusted to work with any other system.
*/
class LocalValetDriver extends WordPressValetDriver {
@ihorvorotnov
ihorvorotnov / get-social-shares
Last active Oct 20, 2020
Get number of shares from social platforms
View get-social-shares
Facebook*:
https://api.facebook.com/method/links.getStats?urls=%%URL%%&format=json
+ works, returns shares, likes, comments and total
Twitter:
http://urls.api.twitter.com/1/urls/count.json?url=%%URL%%&callback=twttr.receiveCount
+ v1 API but still works
Reddit:
http://buttons.reddit.com/button_info.json?url=%%URL%%
View minimal-analytics-snippet.js
(function (context, trackingId, options) {
const history = context.history;
const doc = document;
const nav = navigator || {};
const storage = localStorage;
const encode = encodeURIComponent;
const pushState = history.pushState;
const typeException = 'exception';
const generateId = () => Math.random().toString(36);
const getId = () => {
@ihorvorotnov
ihorvorotnov / functions.php
Created Aug 7, 2020
Custom wrapper for require() instead of get_template_part()
View functions.php
<?php
define( 'THEME_PATH', __DIR__ );
/**
* A faster alternative to native get_template_part() function.
*
* @param string $template
* @param mixed $data
*
* @return void
@ihorvorotnov
ihorvorotnov / publickey-git-error.markdown
Created Oct 3, 2015 — forked from adamjohnson/publickey-git-error.markdown
Fix "Permission denied (publickey)" error when pushing with Git
View publickey-git-error.markdown

"Help, I keep getting a 'Permission Denied (publickey)' error when I push!"

This means, on your local machine, you haven't made any SSH keys. Not to worry. Here's how to fix:

  1. Open git bash (Use the Windows search. To find it, type "git bash") or the Mac Terminal. Pro Tip: You can use any *nix based command prompt (but not the default Windows Command Prompt!)
  2. Type cd ~/.ssh. This will take you to the root directory for Git (Likely C:\Users\[YOUR-USER-NAME]\.ssh\ on Windows)
  3. Within the .ssh folder, there should be these two files: id_rsa and id_rsa.pub. These are the files that tell your computer how to communicate with GitHub, BitBucket, or any other Git based service. Type ls to see a directory listing. If those two files don't show up, proceed to the next step. NOTE: Your SSH keys must be named id_rsa and id_rsa.pub in order for Git, GitHub, and BitBucket to recognize them by default.
  4. To create the SSH keys, type ssh-keygen -t rsa -C "your_email@example.com". Th
@ihorvorotnov
ihorvorotnov / script.js
Last active Nov 14, 2019
Using wp_is_mobile() in WordPress to detect mobile users (phones and tablets)
View script.js
jQuery( document ).ready( function($) {
if ( $( "body" ).hasClass("wp-is-mobile"){
/* Do javascript for mobile */
}
else{
/* Do javascript for non-mobile */
}
});
@ihorvorotnov
ihorvorotnov / SnapshotCommand.php
Created Aug 6, 2019 — forked from ralphschindler/SnapshotCommand.php
An example Laravel app command to create and load database snapshots using S3
View SnapshotCommand.php
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Storage;
class SnapshotCommand extends Command
{
@ihorvorotnov
ihorvorotnov / wp-reposive-video
Created Mar 7, 2014
WordPress Resposive Videos (oEmbed + iframe/embed)
View wp-reposive-video
1. Add this to your functions.php or inc/templates-tags.php
/**
* Wrap videos embedded via oEmbed to make them responsive
*/
function p2_wrap_oembed( $html, $url, $attr, $post_id ) {
return '<div class="video-embed">' . $html . '</div>';
}
add_filter( 'embed_oembed_html', 'p2_wrap_oembed', 99, 4 );