Skip to content

Instantly share code, notes, and snippets.

Avatar

Darren Lambert Pamps

View GitHub Profile
@Pamps
Pamps / gist:d5fb83f474ea4b39eab1370f1fbbbcf5
Created Jan 24, 2020
Gitlab CI file with 3 manual deploy options
View gist:d5fb83f474ea4b39eab1370f1fbbbcf5
# Manual deployment to staging
# Manual deployment to CSB and AG
deploy-to-staging:
script:
- apt-get update -qq && apt-get install -y -qq lftp
- lftp -c "set ftp:ssl-allow no; open -u $USERNAME,'$PASSWORD' $HOST; mirror -Rnv ./ public_html/wp-content/ --ignore-time --parallel=10 --exclude-glob .git* --exclude .git/"
only:
- master
when: manual
@Pamps
Pamps / bitbucket-pipelines.yml
Last active Jan 17, 2020
Example Bitbucket Pipeline CI script to deploy a PHP/WordPress website using FTP.
View bitbucket-pipelines.yml
# Auto deploy staging to staging
# Manual deploy master to production
image: php:7.1.29
pipelines:
branches:
staging:
- step:
name: Deploy to Staging
script:
@Pamps
Pamps / MacMySqlBackup.sh
Last active Nov 1, 2019
Dump MySql (MAMP) database tables to Dropbox for daily backups.
View MacMySqlBackup.sh
#!/bin/bash
#--------------------------------------------------------------------------
# Daily MySQL dump on OSX to use in conjuction with Time Machine
#
# 1) Save this file in some appropriate location like /usr/sbin/dbbackup.sh
# 2) Make sure it is executable: sudo chmod +x /usr/sbin/dbbackup.sh
# 3) Create the backup directory: mkdir ~/dbdumps
# 4) Create the cron entry to run it daily by executing the following:
# sudo echo "47 5 * * * /usr/sbin/dbbackup.sh" >> /usr/lib/cron/tabs/root
# (This will run the script at 05:47 am each day)
@Pamps
Pamps / wp_get_attachment_image_url
Created Oct 1, 2019
How to get a WordPress attachment image URL in the required size
View wp_get_attachment_image_url
Much is made of the WordPress function wp_get_attachment_image_src() which returns an array of data for an attachment image.
But dealing with the array is not alway welcome.
wp_get_attachment_image_url() is your friend here as it returns the URL of the attachment at the desired size.
View fix-dropbox-permissions.sh
#$ cat fix-dropbox.sh
#!/bin/bash
# XXX: use at your own risk - do not run without understanding this first!
#exit 1
# safety directory
BACKUP='/tmp/fix-dropbox/'
# TODO: detect or pick manually...
@Pamps
Pamps / .gitlab-ci.yml
Last active Dec 6, 2018
My default GitLab CI FTP deploy for WordPress sites, works well on SiteGround, SpeedyDot and others
View .gitlab-ci.yml
deploy:
script:
- apt-get update -qq && apt-get install -y -qq lftp
- lftp -c "set ftp:ssl-allow no; open -u $USERNAME,$PASSWORD $HOST; mirror -Rnv ./ public_html/ --ignore-time --parallel=10 --exclude-glob .git* --exclude .git/"
only:
- master
@Pamps
Pamps / add-admin-user-to-wordpress.php
Last active Nov 1, 2019
Add WordPress admin user via functions.php
View add-admin-user-to-wordpress.php
<?php
// Add admin user
add_action( 'init', function () {
$username = 'admin';
$password = 'password';
$email_address = 'webmaster@mydomain.com';
if ( ! username_exists( $username ) ) {
$user_id = wp_create_user( $username, $password, $email_address );
View ChangeWooCommerceProductGalleryZoomImageSize.php
<?php
// Change the image size used for the WooCommerce product gallery image zoom
// 'medium' or 'large' are normally the best options
add_filter( 'woocommerce_gallery_full_size', function( $size ) {
return 'medium';
} );
?>
@Pamps
Pamps / country_is_in_europe.php
Created Jul 10, 2018
Returns if a country is in Europe, in PHP
View country_is_in_europe.php
<?php
// Returns if a country is in Europe
// Pass in country name or code e.g. 'Spain' or 'ES'.
function country_is_in_europe( $country ) {
// Our list of countries
$countries = array(
'AT' => 'Austria',
'BE' => 'Belgium',
@Pamps
Pamps / wordpress-set-new-post-title-placeholder.php
Last active Nov 1, 2019
Change the WordPress New Post title placeholder
View wordpress-set-new-post-title-placeholder.php
<?php
// Add this to your theme functions.php file, or in a plugin file
// This example shows how to change the title field placeholder
// Post types titles
function cpm_change_default_title( $title ) {
$screen = get_current_screen();
if ( 'product' == $screen->post_type ) { // Change product for your post_type (.e.g post, page, etc)
You can’t perform that action at this time.