Skip to content

Instantly share code, notes, and snippets.

View QROkes's full-sized avatar

Cristhian Martínez Ochoa QROkes

View GitHub Profile
@QROkes
QROkes / functions.php
Created March 25, 2016 02:57
Embed Gist - WordPress
<?php
// Embed gist without JavaScript in WordPress
wp_embed_register_handler( 'gist', '/https?:\/\/gist\.github\.com\/([a-z0-9\/]+)([\?\#]file[=-].*)?/i', 'qr_embed_gist' );
function qr_embed_gist( $matches, $attr, $url, $rawattr ) {
if(empty($matches[1])){$matches[1]=null;}
if(empty($matches[2])){$matches[2]=null;} // Query single file
$file = wp_remote_get( esc_url_raw( 'https://gist.github.com/' . esc_attr($matches[1]) . '.json' ) );
@QROkes
QROkes / file.php
Created March 25, 2016 02:23
Download the url to a local temp file and then process it with getimagesize so we can optimize browser layout
<?php
$img_url = 'http://someurl.com/image.jpg';
if ( !empty( $img_url ) ) {
$tmp_file = download_url( $img_url, 10 );
if ( !is_wp_error( $tmp_file ) ) {
$size = getimagesize( $tmp_file );
$img_width = $size[0];
$img_height = $size[1];
@QROkes
QROkes / functions.php
Created March 18, 2016 22:05
Genesis Simple Sidebars for Custom Post Types (WordPress + Genesis Framework)
<?php
add_action( 'genesis_before_sidebar_widget_area', 'qr_remove_default_sidebar' );
function qr_remove_default_sidebar() {
if ( get_post_type() == 'my-cpt' ) { // set CPT here
remove_action( 'genesis_sidebar', 'ss_do_sidebar' );
remove_action( 'genesis_sidebar', 'genesis_do_sidebar' );
add_action( 'genesis_sidebar', 'qr_add_cpt_sidebar' );
}
}
function qr_add_cpt_sidebar() {
@QROkes
QROkes / page.php
Created March 18, 2016 20:55
List custom taxonomy terms (WordPress)
<?php
$args = array( 'hide_empty=0' );
$terms = get_terms( 'my-taxonomy', $args );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
$count = count( $terms );
$i = 0;
$term_list = '<p class="term-list">Tags: ';
foreach ( $terms as $term ) {
$i++;
$term_list .= '<a href="' . esc_url( get_term_link( $term ) ) . '" alt="' . esc_attr( sprintf( __( 'View all post filed under - %s -', 'my_localization_domain' ), $term->name ) ) . '">' . $term->name . '</a>';
@QROkes
QROkes / functions.php
Created March 18, 2016 19:15
WordPress exclude posts from Loop.
add_action( 'pre_get_posts', 'qr_exclude_tagged_posts' );
function qr_exclude_tagged_posts( $query ) {
if ( $query->is_main_query() && $query->is_home() ) {
$query->set( 'tag__not_in', array( 63 ) );
}
}
@QROkes
QROkes / file.php
Created March 18, 2016 18:49
Get HTML source code with cUrl (file_get_contents as fallback)
$urlcontent = qr_loadUrl( 'http://myurl.com' );
function qr_loadUrl( $url ) {
if(is_callable( 'curl_init' )) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_URL, $url);
$data = curl_exec($ch);
curl_close($ch);
@QROkes
QROkes / page_archive.php
Created March 6, 2016 01:50
Multilingual archive sitemap template (WordPress + Genesis Framework + Poylang)
<?php
/**
* Genesis Framework
* Multilingual archive sitemap template (page_archive.php)
**/
//* Template Name: Archive
// Remove standard post content output
remove_action( 'genesis_post_content', 'genesis_do_post_content' );
@QROkes
QROkes / index.html
Created March 6, 2016 00:21
How to center an image (vertically & horizontally) on a simple HTML web page.
<!DOCTYPE html>
<html lang="es-MX">
<head>
<meta charset="UTF-8" />
<title>Tituo de la pagina</title>
<meta name="description" content="Agregar descripcion">
<style type="text/css"> <!--Fix width, height and margin -->
img {
width: 600px;
height: 340px;
@QROkes
QROkes / le-renew.sh
Created February 7, 2016 02:20
Let's Encrypt renewal script for Nginx on Ubuntu
#!/bin/bash
#================================================================
# Let's Encrypt renewal script for Nginx on Ubuntu
# Modified by Cristhian Martinez Ochoa <cristhian@qrokes.com> https://qrokes.com
# Original author Erika Heidi <erika@do.co>
# Usage: sudo le-renew [base-domain-name]
#================================================================
# Modify le_path with your current ubuntu username
domain=$1
le_path='/home/user/letsencrypt'
@QROkes
QROkes / nginx.conf
Last active September 26, 2023 16:41
NGINX Configuration for WordPress Multisite + Domain Mapping with HTTPS
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com subsite.com www.subsite.com another.com www.another.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;