Skip to content

Instantly share code, notes, and snippets.

View krasenslavov's full-sized avatar
Work in progress

Krasen Slavov krasenslavov

Work in progress
View GitHub Profile
@krasenslavov
krasenslavov / extend_gutenberg_gallery_block.css
Last active April 26, 2020 15:39
Overwrite and extend Gutenberg gallery block. Visit blog post https://bit.ly/34OMvdz
@krasenslavov
krasenslavov / extend_gutenberg_gallery_block.php
Last active May 10, 2022 14:23
Overwrite and extend Gutenberg gallery block. Visit blog post https://bit.ly/34OMvdz
@krasenslavov
krasenslavov / custom_user_roles.php
Last active April 26, 2020 15:38
Add and remove custom user roles without plugin. Visit blog post https://bit.ly/3boczPg
<?php
$msg = '';
// Remove custom user role and assign all users with this role to subscibres.
if (!empty($_GET)) {
if (!empty($_GET['del'])) {
$users = get_users(['role__in' => [esc_attr($_GET['del'])]]);
@krasenslavov
krasenslavov / boilerplate.php
Last active March 2, 2021 18:25
Use WP-CLI to quickly generate WordPress child themes. Visit blog post https://bit.ly/2VEkdyf
<?php
$options = [
'parent' => '',
'name' => 'Child Theme',
'description' => 'Enter child theme description...',
'screenshot' => '',
'bootstrap' => false
];
@krasenslavov
krasenslavov / blogger-card.css
Last active April 26, 2020 15:36
Blogger cards plugin assets. Visit blog post https://bit.ly/2VdH98p
:root {
--primary: #0073aa;
--white: #ffffff;
--lightgrey: #f2f1f1;
}
.grid {
align-items: flex-start;
display: grid;
grid-gap: 1rem;
grid-template-columns: repeat(auto-fill, minmax(256px, 1fr));
@krasenslavov
krasenslavov / blogger-cards-template.php
Last active April 26, 2020 15:36
Blogger cards template file. Visit blog post https://bit.ly/2VdH98p
<?php $bloggers = get_users(['role__in' => ['author', 'subscriber']]);?>
<div class="grid">
<?php foreach($bloggers as $user):?>
<user-card name="<?php echo $user->display_name;?>" avatar="<?php echo get_avatar_url($user->ID, array('size' => 512));?>">
<div slot="email"><?php echo $user->user_email;?></div>
<div slot="url"><?php echo $user->user_url;?></div>
<div slot="bio"><?php echo $user->user_description;?></div>
</user-card>
<?php endforeach;?>
@krasenslavov
krasenslavov / blogger-cards.php
Last active April 26, 2020 15:36
Blogger cards main plugin file. Visit blog post https://bit.ly/2VdH98p
<?php
/**
Plugin Name: Blogger Cards
Plugin URI: https://ctrls.dev/
Description: Create blogger cards plugin using WordPress and Web Compoments.
Version: 0.0.1
Author: Krasen Slavov
Author URI: https://krasenslavov.com/
License: GNU General Public License, version 2
License URI: https://www.gnu.org/licenses/gpl-2.0.html
@krasenslavov
krasenslavov / bitly_integration_with_wordpress_3.php
Last active April 26, 2020 15:35
Use Bitly to generate short URLs in WordPress. Visit blog post https://bit.ly/2XB3M8s
<?php
add_action('manage_posts_columns', function($columns) {
$columns['bitly_url'] = 'Bitly URL';
return $columns;
}, 10, 1);
add_action('manage_posts_custom_column', function($column, $post_id) {
@krasenslavov
krasenslavov / bitly_integration_with_wordpress_2.php
Last active April 26, 2020 15:35
Use Bitly to generate short URLs in WordPress. Visit blog post https://bit.ly/2XB3M8s
<?php
remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0);
add_action('wp_head', function() {
global $post;
$short_url = get_post_meta($post->ID, 'bitly_url', true);
@krasenslavov
krasenslavov / bitly_integration_with_wordpress_1.php
Last active April 26, 2020 15:42
Use Bitly to generate short URLs in WordPress. Visit blog post https://bit.ly/2XB3M8s
<?php
add_action('publish_post', function ($post_id) {
global $wpdb;
$api_key = 'GENERATED_ACCESS_TOKEN';
$api_url = 'https://api-ssl.bitly.com/v4/bitlinks';
$data = array(