Skip to content

Instantly share code, notes, and snippets.

View pierre-dargham's full-sized avatar

Pierre Dargham pierre-dargham

View GitHub Profile
@pierre-dargham
pierre-dargham / scalable-wp-queries.php
Created July 19, 2023 09:28
scalable-wp-queries.php
<?php
$max_results_per_query = 200;
$offset = 0;
$has_more_results = true;
while($has_more_results) {
$args = [
'post_type' => 'example-post-type',

Page avec N champs ACF relationnels

Chargemement SQL par défaut :

Les requêtes sont déclanchées lors des get_field, en cours de templating :

get_field 1 -> post 1

  • 1 requete = fetch post : SELECT * FROM wp_posts WHERE ID IN (1)
  • 1 requete = fetch post meta : SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (1)
  • 1 requete = fetch post terms & taxonomies : SELECT t.*, tt.*, tr.object_id FROM wp_terms (...) WHERE tr.object_id IN (1)
@pierre-dargham
pierre-dargham / email_validation.php
Last active April 12, 2021 09:35
email_validation.php
<?php
// composer require wesbos/burner-email-providers
function validate_email($email)
{
$email = mb_strtolower($email);
if(!email_has_valid_format($email)) {
return "error: invalid email format";
@pierre-dargham
pierre-dargham / .htaccess
Created October 4, 2019 17:34
apache/htaccess disable eucd google indexation restriction
<IfModule mod_headers.c>
Header set X-Robots-Tag "max-snippet:-1, max-image-preview:large, max-video-preview:-1"
</IfModule>
@pierre-dargham
pierre-dargham / wp-cubi-acf-post-object-field-with-id.php
Created January 24, 2019 16:18
wp-cubi-acf-post-object-field-with-id.php
<?php
/*
* Plugin Name: ACF Post Object Field With ID
* Description: Show & search by ID with acf post object field
* Author: Pierre Dargham
* Author URI: https://github.com/pierre-dargham/
* Version: 1.0
*/
@pierre-dargham
pierre-dargham / try_retry.php
Last active March 14, 2018 16:19
try / retry (WP)
<?php
namespace Globalis\WP\Retry;
// @todo:
// 1. POO style
// 2. if last try, and fail -> do_action
// 3. if last try : try / catch exception ? if $on_exception : throws exception ?
add_action('event_retry', __NAMESPACE . '\\_try', 10, 7);
@pierre-dargham
pierre-dargham / wp-cubi-helpers.php
Last active August 9, 2017 16:10
wp-cubi-helpers.php
<?php
namespace Globalis\WP\Cubi;
function get_permalink_by_template($template, $default = false)
{
$pages = new \WP_Query([
'posts_per_page' => 1,
'post_type' => 'page',
'post_status' => 'publish',
@pierre-dargham
pierre-dargham / wpg-disable-dopings.php
Created June 30, 2017 14:12
wpg-disable-dopings.php
<?php
namespace Globalis\WP\DisableDoPings;
if (isset($_GET['doing_wp_cron'])) {
remove_action('do_pings', 'do_all_pings');
wp_clear_scheduled_hook('do_pings');
}
@pierre-dargham
pierre-dargham / acf-translate-field-groups.php
Last active May 17, 2017 08:08
acf-translate-field-groups.php
<?php
namespace Globalis\ACF;
add_filter('acf/get_field_group', __NAMESPACE__ . '\\acf_translate_field_group');
add_filter('acf/load_field', __NAMESPACE__ . '\\acf_translate_field');
function acf_translate_field_group($field_group) {
if(is_acf_admin()) {
return $field_group;