https://getshortcodes.com/docs/posts/
Template editing
Do not edit templates in the plugin folder, since all your changes will be lost after plugin update.
To modify a built-in template you should copy it to your theme directory first. For convenience, you can copy the whole templates folder from the plugin folder. You can rename the copied folder, it doesn’t have to be templates. Resulting path to template files should look like so:
/wp-content/themes/THEME-NAME/templates/
Now you can edit copied template files.
Use the template attribute to change the template used by shortcode. The value of this attribute must be a template file path relative to your theme’s folder. Example:
PHP Cheat Sheet
PHP Cheat Sheet The only paths that matter (Homebrew PHP 8.5 + Apache) PHP binary /opt/homebrew/bin/php PHP 8.5 config folder /opt/homebrew/etc/php/8.5/ Extra scanned INI files /opt/homebrew/etc/php/8.5/conf.d/ PHP-FPM main config /opt/homebrew/etc/php/8.5/php-fpm.conf PHP-FPM pool configs /opt/homebrew/etc/php/8.5/php-fpm.d/ yours: /opt/homebrew/etc/php/8.5/php-fpm.d/sandbox.conf Apache vhost file (your php sandbox site) /private/etc/apache2/extra/php-sandbox.local.conf Apache main config /etc/apache2/httpd.conf Apache logs (your sandbox vhost) /private/var/log/apache2/php-sandbox-error_log /private/var/log/apache2/php-sandbox-access_log […]
Categories and Tags
CATEGORIES TAGS
Gitlab – Backup / Update Steps
To update your GitLab instance to version 17.6, follow these steps: Review the Release Notes: Familiarize yourself with the new features, bug fixes, and any deprecations in version 17.6. GitLab check rhel [spiffy-root@spiffydesign ~]$ rpm -E %rhel 9 Cool — RHEL/Alma 9 means you want the .el9 builds. Install targets (in order) 1. gitlab-ee-18.5.5-ee.0.el9 2. […]
Signals Vault – Auth
Auth system complete. Two auth paths, both project-scoped: Path A — AccidAuth (primary) routers/auth.py POST /auth/verify-token — accepts X-Accid-Key + X-Accid-Hash + X-ACCID-App headers Auto-registers on first call (no separate registration step) Project scoping: pass {"project_id": "dragon-lady"} in body — keys accumulate project access on each successful auth GET /auth/key-info — returns registered projects, app, […]
ACCID Scraper Pipeline
+ JSON-noculars Complete System Documentation Version 2.0 — February 11, 2026 What This System Does The ACCID Scraper Pipeline takes any website, extracts its content (text, links, images, navigation), and converts it into a format the ACCID HTML Builder can import. The output is a static HTML site with the original content. No databases, no […]
./ACCID HTML Builder – Technical Overview
JSON Overview What It Is A standalone, client-side HTML page builder. No backend server required for core editing — pages are built in the browser, persisted to localStorage, and exported as static HTML via ZIP download or FTP upload. When served from an ACCID backend (PHP bridge or ACCID Vault), persistence extends to server-side storage. […]
🎉 ACCID VAULT v2.0 – COMPLETE SYSTEM
ADDITION: See Tagger Integration guide 9 MONTHS IN THE MAKING – IT’S DONE! What You Got: 1. vault_enhanced.py (900+ lines) The complete, production-ready vault with EVERYTHING: ✅ Project Management – Waypoint tutorials – HTML sites – React apps – Unlimited projects from one install ✅ FTP Deployment – Original feature (your 30-line vault) – Now […]
Vault Deployment | 🎯 Clear Architecture: Web vs Desktop
Three Deployment Modes: Mode 1: Pure Web (No Vault Needed) User Browser ↓ https://yoursite.com/html-builder ↓ localStorage (editing) ↓ Browser FTP library (publishing) ↓ User’s FTP server Who: Public users on your siteInstall: NothingVault: Not needed (browser handles FTP) Mode 2: Web + Hosted Vault (Recommended) User Browser ↓ https://yoursite.com/html-builder ↓ localStorage (editing) ↓ POST to […]
🚀 Tagger → Vault Integration Guide
What’s New in Vault v2.0 Your Vault now has complete tagger processing built-in: ✅ Tag group processing (context-aware content) ✅ Archive page generation (categories, tags, dates) ✅ Search index building ✅ Image proxy & collection ✅ FTP deployment with image gathering Total: 1,086 lines (was 530, added 556 lines of tagger processing) Quick Start 1. […]
In the example above the plugin will search for a template in the following locations (in the specified order):
/wp-content/themes/child-theme/templates/default-loop.php
/wp-content/themes/parent-theme/templates/default-loop.php
/wp-content/plugins/shortcodes-ultimate/includes/partials/shortcodes/posts/templates/default-loop.php
Creating custom templates
The PHP Cheat Sheet The only paths that matter (Homebrew PHP 8.5 + Apache) PHP binary /opt/homebrew/bin/php PHP 8.5 config folder /opt/homebrew/etc/php/8.5/ Extra scanned INI files /opt/homebrew/etc/php/8.5/conf.d/ PHP-FPM main config /opt/homebrew/etc/php/8.5/php-fpm.conf PHP-FPM pool configs /opt/homebrew/etc/php/8.5/php-fpm.d/ yours: /opt/homebrew/etc/php/8.5/php-fpm.d/sandbox.conf Apache vhost file (your php sandbox site) /private/etc/apache2/extra/php-sandbox.local.conf Apache main config /etc/apache2/httpd.conf Apache logs (your sandbox vhost) /private/var/log/apache2/php-sandbox-error_log /private/var/log/apache2/php-sandbox-access_log […] CATEGORIES TAGS To update your GitLab instance to version 17.6, follow these steps: Review the Release Notes: Familiarize yourself with the new features, bug fixes, and any deprecations in version 17.6. GitLab check rhel [spiffy-root@spiffydesign ~]$ rpm -E %rhel 9 Cool — RHEL/Alma 9 means you want the .el9 builds. Install targets (in order) 1. gitlab-ee-18.5.5-ee.0.el9 2. […] Auth system complete. Two auth paths, both project-scoped: Path A — AccidAuth (primary) routers/auth.py POST /auth/verify-token — accepts X-Accid-Key + X-Accid-Hash + X-ACCID-App headers Auto-registers on first call (no separate registration step) Project scoping: pass {"project_id": "dragon-lady"} in body — keys accumulate project access on each successful auth GET /auth/key-info — returns registered projects, app, […] + JSON-noculars Complete System Documentation Version 2.0 — February 11, 2026 What This System Does The ACCID Scraper Pipeline takes any website, extracts its content (text, links, images, navigation), and converts it into a format the ACCID HTML Builder can import. The output is a static HTML site with the original content. No databases, no […] JSON Overview What It Is A standalone, client-side HTML page builder. No backend server required for core editing — pages are built in the browser, persisted to localStorage, and exported as static HTML via ZIP download or FTP upload. When served from an ACCID backend (PHP bridge or ACCID Vault), persistence extends to server-side storage. […] ADDITION: See Tagger Integration guide 9 MONTHS IN THE MAKING – IT’S DONE! What You Got: 1. vault_enhanced.py (900+ lines) The complete, production-ready vault with EVERYTHING: ✅ Project Management – Waypoint tutorials – HTML sites – React apps – Unlimited projects from one install ✅ FTP Deployment – Original feature (your 30-line vault) – Now […] Three Deployment Modes: Mode 1: Pure Web (No Vault Needed) User Browser ↓ https://yoursite.com/html-builder ↓ localStorage (editing) ↓ Browser FTP library (publishing) ↓ User’s FTP server Who: Public users on your siteInstall: NothingVault: Not needed (browser handles FTP) Mode 2: Web + Hosted Vault (Recommended) User Browser ↓ https://yoursite.com/html-builder ↓ localStorage (editing) ↓ POST to […] What’s New in Vault v2.0 Your Vault now has complete tagger processing built-in: ✅ Tag group processing (context-aware content) ✅ Archive page generation (categories, tags, dates) ✅ Search index building ✅ Image proxy & collection ✅ FTP deployment with image gathering Total: 1,086 lines (was 530, added 556 lines of tagger processing) Quick Start 1. […]
shortcode supports custom templates, which makes it incredibly powerful. Follow the steps below to create one.PHP Cheat Sheet
Categories and Tags
Gitlab – Backup / Update Steps
Signals Vault – Auth
ACCID Scraper Pipeline
./ACCID HTML Builder – Technical Overview
🎉 ACCID VAULT v2.0 – COMPLETE SYSTEM
Vault Deployment | 🎯 Clear Architecture: Web vs Desktop
🚀 Tagger → Vault Integration Guide
Step 1
Create a new folder in your theme directory and name it su-posts-templates, so the resulting path would be:
/wp-content/themes/YOUR-THEME-NAME/su-posts-templates/
Step 2
Create a new file in the su-posts-templates folder and name it my-template.php. The resulting path would be:
/wp-content/themes/YOUR-THEME-NAME/su-posts-templates/my-template.php
Step 3
Put the following snippet into the created file:
<?php if ( $posts->have_posts() ) : ?>
<div class="su-posts su-posts-my-template">
<?php while ( $posts->have_posts() ) : ?>
<?php $posts->the_post(); ?>
<a href="<?php%20the_permalink();%20?>"><?php the_title(); ?></a>
<?php endwhile; ?>
</div>
<?php else : ?>
<p>Posts not found!</p>
<?php endif; ?>
Step 4
Now you can use the created template:
Adding custom template paths
If you need to store your templates outside of the theme directory, you can extend the list of allowed template paths. Use the following snippet in a custom plugin or in the functions.php file:
add_filter(
'su/shortcode/posts/allowed_template_locations',
function( $locations ) {
// /wp-content/
$locations[] = WP_CONTENT_DIR;
return $locations;
},
10,
1
);
The code above will allow you to store templates under /wp-content/ directory.
Pagination Plugin
https://wordpress.org/plugins/wp-paginate/
Description
LATEST NEWS
WP-Paginate is a simple and flexible pagination plugin which provides users with better navigation on your WordPress site.
In addition to increasing the user experience for your visitors, it has also been widely reported that pagination increases the SEO of your site by providing more links to your content.
You can add custom CSS for your pagination links with the Custom CSS tab in WP-Paginate Settings.
Starting in version 1.1, WP-Paginate can also be used to paginate post comments!
Translations: https://plugins.svn.wordpress.org/wp-paginate/I18n (check the version number for the correct file)

FAQ
-
How can I override the default pagination settings?
The
wp_paginate()andwp_paginate_comments()functions each takes one optional argument, in query string format, which allows you to override the global settings. The available options are:title – The text/HTML to display before the pagination links
nextpage – The text/HTML to use for the next page link
previouspage – The text/HTML to use for the previous page link
before – The text/HTML to add before the pagination links and title
after – The text/HTML to add after the pagination links
empty – Display before markup and after markup code even when the page list is empty
range – The number of page links to show before and after the current page
anchor – The number of links to always show at beginning and end of pagination
gap – The minimum number of pages before a gap is replaced with an ellipsis (…)Y
ou can even control the current page and number of pages with:
page – The current page. This function will automatically determine the value
pages – The total number of pages. This function will automatically determine the value
Example (also applies to ‘wp_paginate_comments()`)
<?php if(function_exists('wp_paginate')) { wp_paginate('range=4&anchor=2&nextpage=Next&previouspage=Previous'); } ?>
Github – shortcode w/pagination example
https://gist.github.com/raselahmed7/b8ff6fb24d782c3b2c63
custom-post-loop-with-pagination-shortcode.php
<?php
function portfolios_shortcode($atts){
extract( shortcode_atts( array(
'expand' => '',
), $atts) );
global $paged;
$posts_per_page = 6;
$settings = array(
'showposts' => $posts_per_page,
'post_type' => 'portfolio',
'orderby' => 'menu_order',
'order' => 'ASC',
'paged' => $paged
);
$post_query = new WP_Query( $settings );
$total_found_posts = $post_query->found_posts;
$total_page = ceil($total_found_posts / $posts_per_page);
$list = '<div class="portfolio-item-list">';
while($post_query->have_posts()) : $post_query->the_post();
$list .= '
<div class="single-portfolio-item">
</div>
';
endwhile;
$list.= '</div>';
if(function_exists('wp_pagenavi')) {
$list .='<div class="page-navigation">'.wp_pagenavi(array('query' => $post_query, 'echo' => false)).'</div>';
} else {
$list.='
<span class="next-posts-links">'.get_next_posts_link('Next page', $total_page).'</span>
<span class="prev-posts-links">'.get_previous_posts_link('Previous page').'</span>
';
}
return $list;
}
add_shortcode('portfolios', 'portfolios_shortcode');