Repository files navigation

UCSC Custom Functionality

Build and release

A WordPress plugin that provides theme-independent custom functionality for UC Santa Cruz websites. By keeping features like custom post types, blocks, shortcodes, and admin customizations separate from the UCSC theme, future theme changes won't affect site functionality.

All Sites

These features are active on every UCSC WordPress site using the plugin.

Admin Customizations

  • Removes the deprecated Link Manager from the dashboard sidebar
  • Hides the Customizer from the admin bar for users without theme editing capabilities

Analytics & Security

  • Google Tag Manager integration for site analytics
  • SiteImprove analytics and accessibility check script

Shortcodes

  • [site-search] — Embeds a Google Site Search results page with context-aware domain detection
  • [copyright] — Displays a copyright symbol with the current year
  • [last-modified] — Shows a post's last modified date (or creation date as a fallback)

Settings Page

An admin settings page under Settings > UCSC Custom Functionality provides plugin version and feature overview

News Block

The News block is available on all sites. It displays news articles with configurable layout, taxonomy filtering, and visibility toggles for image, date, excerpt, author, and tags. Built with Advanced Custom Fields and registered via block.json.

News Sites Only

The following features require the UCSC_NEWS_SITE constant to be defined as true. They provide content management tools tailored to the UCSC news site.

Custom Blocks (ACF)

BlockDescription
Featured NewsQuery-based block for featured stories with a CTA link
MagazineTwo-line title/subtitle layout with repeating items (title, byline, image, description, CTA)
Photo of the WeekSingle photo selector with title and "All Photos" CTA
Press InquiriesUp to 2 inquiry contacts (name, email, phone) plus media file and description
Media CoverageQuery loop for the media coverage post type
Related StoriesDisplays up to 3 manually selected or automatically queried related posts
Post HeaderConfigurable post header layout (small or large image)

Query-based blocks support three query modes: latest posts, automatic (pull from a taxonomy), or manual (select posts individually). Results are cached with 20-minute transients.

Custom Post Types

  • Photo of the Week (photo-of-the-week) — A post type with custom fields for photographer credit and image, with a public archive and REST API support

Custom Templates

  • Post Single — Custom single post template
  • Photo of the Week Archive — Custom archive template for the Photo of the Week post type

Integrations

  • Yoast SEO — Registers primary term support for UCSC-specific taxonomies (academics, administration, person, section, kind)
  • Co-Authors Plus — Adjusts the author block to support multiple authors
  • ACF — Registers a simplified WYSIWYG toolbar (bold, italic, link) used by block fields

Requirements

  • WordPress 5.5+
  • Advanced Custom Fields PRO
  • Define UCSC_NEWS_SITE as true to enable news-specific blocks, post types, templates, and integrations

Project Structure

lib/functions/ Legacy procedural functionality (admin menus, scripts, settings, shortcodes)
src/
Blocks/ ACF block field group definitions
Components/ Block rendering controllers (data preparation for views)
Hooks/ ACF field hooks for dynamic taxonomy/term loading
Integrations/ Third-party plugin integrations (Yoast, ACF toolbars)
Object_Meta/ Custom post meta field definitions
Post_Types/ Custom post type registrations
Query/ Query modifications
Template/ Custom block template registrations and render filters
views/ Block view templates and block.json files
Core.php Plugin bootstrap and service registration

About

Adds custom functionality to UCSC WordPress Websites.

Resources

Contributing

Stars

3 stars

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

UCSC Custom Functionality

Build and release

A WordPress plugin that provides theme-independent custom functionality for UC Santa Cruz websites. By keeping features like custom post types, blocks, shortcodes, and admin customizations separate from the UCSC theme, future theme changes won't affect site functionality.

All Sites

These features are active on every UCSC WordPress site using the plugin.

Admin Customizations

  • Removes the deprecated Link Manager from the dashboard sidebar
  • Hides the Customizer from the admin bar for users without theme editing capabilities

Analytics & Security

  • Google Tag Manager integration for site analytics
  • SiteImprove analytics and accessibility check script

Shortcodes

  • [site-search] — Embeds a Google Site Search results page with context-aware domain detection
  • [copyright] — Displays a copyright symbol with the current year
  • [last-modified] — Shows a post's last modified date (or creation date as a fallback)

Settings Page

An admin settings page under Settings > UCSC Custom Functionality provides plugin version and feature overview

News Block

The News block is available on all sites. It displays news articles with configurable layout, taxonomy filtering, and visibility toggles for image, date, excerpt, author, and tags. Built with Advanced Custom Fields and registered via block.json.

News Sites Only

The following features require the UCSC_NEWS_SITE constant to be defined as true. They provide content management tools tailored to the UCSC news site.

Custom Blocks (ACF)

BlockDescription
Featured NewsQuery-based block for featured stories with a CTA link
MagazineTwo-line title/subtitle layout with repeating items (title, byline, image, description, CTA)
Photo of the WeekSingle photo selector with title and "All Photos" CTA
Press InquiriesUp to 2 inquiry contacts (name, email, phone) plus media file and description
Media CoverageQuery loop for the media coverage post type
Related StoriesDisplays up to 3 manually selected or automatically queried related posts
Post HeaderConfigurable post header layout (small or large image)

Query-based blocks support three query modes: latest posts, automatic (pull from a taxonomy), or manual (select posts individually). Results are cached with 20-minute transients.

Custom Post Types

  • Photo of the Week (photo-of-the-week) — A post type with custom fields for photographer credit and image, with a public archive and REST API support

Custom Templates

  • Post Single — Custom single post template
  • Photo of the Week Archive — Custom archive template for the Photo of the Week post type

Integrations

  • Yoast SEO — Registers primary term support for UCSC-specific taxonomies (academics, administration, person, section, kind)
  • Co-Authors Plus — Adjusts the author block to support multiple authors
  • ACF — Registers a simplified WYSIWYG toolbar (bold, italic, link) used by block fields

Requirements

  • WordPress 5.5+
  • Advanced Custom Fields PRO
  • Define UCSC_NEWS_SITE as true to enable news-specific blocks, post types, templates, and integrations

Project Structure

lib/functions/ Legacy procedural functionality (admin menus, scripts, settings, shortcodes)
src/
Blocks/ ACF block field group definitions
Components/ Block rendering controllers (data preparation for views)
Hooks/ ACF field hooks for dynamic taxonomy/term loading
Integrations/ Third-party plugin integrations (Yoast, ACF toolbars)
Object_Meta/ Custom post meta field definitions
Post_Types/ Custom post type registrations
Query/ Query modifications
Template/ Custom block template registrations and render filters
views/ Block view templates and block.json files
Core.php Plugin bootstrap and service registration

About

Adds custom functionality to UCSC WordPress Websites.

Resources

Contributing

Stars

3 stars

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

UCSC Custom Functionality

Build and release

A WordPress plugin that provides theme-independent custom functionality for UC Santa Cruz websites. By keeping features like custom post types, blocks, shortcodes, and admin customizations separate from the UCSC theme, future theme changes won't affect site functionality.

All Sites

These features are active on every UCSC WordPress site using the plugin.

Admin Customizations

  • Removes the deprecated Link Manager from the dashboard sidebar
  • Hides the Customizer from the admin bar for users without theme editing capabilities

Analytics & Security

  • Google Tag Manager integration for site analytics
  • SiteImprove analytics and accessibility check script

Shortcodes

  • [site-search] — Embeds a Google Site Search results page with context-aware domain detection
  • [copyright] — Displays a copyright symbol with the current year
  • [last-modified] — Shows a post's last modified date (or creation date as a fallback)

Settings Page

An admin settings page under Settings > UCSC Custom Functionality provides plugin version and feature overview

News Block

The News block is available on all sites. It displays news articles with configurable layout, taxonomy filtering, and visibility toggles for image, date, excerpt, author, and tags. Built with Advanced Custom Fields and registered via block.json.

News Sites Only

The following features require the UCSC_NEWS_SITE constant to be defined as true. They provide content management tools tailored to the UCSC news site.

Custom Blocks (ACF)

BlockDescription
Featured NewsQuery-based block for featured stories with a CTA link
MagazineTwo-line title/subtitle layout with repeating items (title, byline, image, description, CTA)
Photo of the WeekSingle photo selector with title and "All Photos" CTA
Press InquiriesUp to 2 inquiry contacts (name, email, phone) plus media file and description
Media CoverageQuery loop for the media coverage post type
Related StoriesDisplays up to 3 manually selected or automatically queried related posts
Post HeaderConfigurable post header layout (small or large image)

Query-based blocks support three query modes: latest posts, automatic (pull from a taxonomy), or manual (select posts individually). Results are cached with 20-minute transients.

Custom Post Types

  • Photo of the Week (photo-of-the-week) — A post type with custom fields for photographer credit and image, with a public archive and REST API support

Custom Templates

  • Post Single — Custom single post template
  • Photo of the Week Archive — Custom archive template for the Photo of the Week post type

Integrations

  • Yoast SEO — Registers primary term support for UCSC-specific taxonomies (academics, administration, person, section, kind)
  • Co-Authors Plus — Adjusts the author block to support multiple authors
  • ACF — Registers a simplified WYSIWYG toolbar (bold, italic, link) used by block fields

Requirements

  • WordPress 5.5+
  • Advanced Custom Fields PRO
  • Define UCSC_NEWS_SITE as true to enable news-specific blocks, post types, templates, and integrations

Project Structure

lib/functions/ Legacy procedural functionality (admin menus, scripts, settings, shortcodes)
src/
Blocks/ ACF block field group definitions
Components/ Block rendering controllers (data preparation for views)
Hooks/ ACF field hooks for dynamic taxonomy/term loading
Integrations/ Third-party plugin integrations (Yoast, ACF toolbars)
Object_Meta/ Custom post meta field definitions
Post_Types/ Custom post type registrations
Query/ Query modifications
Template/ Custom block template registrations and render filters
views/ Block view templates and block.json files
Core.php Plugin bootstrap and service registration

About

Adds custom functionality to UCSC WordPress Websites.

Resources

Contributing

Stars

3 stars

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

UCSC Custom Functionality

Build and release

A WordPress plugin that provides theme-independent custom functionality for UC Santa Cruz websites. By keeping features like custom post types, blocks, shortcodes, and admin customizations separate from the UCSC theme, future theme changes won't affect site functionality.

All Sites

These features are active on every UCSC WordPress site using the plugin.

Admin Customizations

  • Removes the deprecated Link Manager from the dashboard sidebar
  • Hides the Customizer from the admin bar for users without theme editing capabilities

Analytics & Security

  • Google Tag Manager integration for site analytics
  • SiteImprove analytics and accessibility check script

Shortcodes

  • [site-search] — Embeds a Google Site Search results page with context-aware domain detection
  • [copyright] — Displays a copyright symbol with the current year
  • [last-modified] — Shows a post's last modified date (or creation date as a fallback)

Settings Page

An admin settings page under Settings > UCSC Custom Functionality provides plugin version and feature overview

News Block

The News block is available on all sites. It displays news articles with configurable layout, taxonomy filtering, and visibility toggles for image, date, excerpt, author, and tags. Built with Advanced Custom Fields and registered via block.json.

News Sites Only

The following features require the UCSC_NEWS_SITE constant to be defined as true. They provide content management tools tailored to the UCSC news site.

Custom Blocks (ACF)

BlockDescription
Featured NewsQuery-based block for featured stories with a CTA link
MagazineTwo-line title/subtitle layout with repeating items (title, byline, image, description, CTA)
Photo of the WeekSingle photo selector with title and "All Photos" CTA
Press InquiriesUp to 2 inquiry contacts (name, email, phone) plus media file and description
Media CoverageQuery loop for the media coverage post type
Related StoriesDisplays up to 3 manually selected or automatically queried related posts
Post HeaderConfigurable post header layout (small or large image)

Query-based blocks support three query modes: latest posts, automatic (pull from a taxonomy), or manual (select posts individually). Results are cached with 20-minute transients.

Custom Post Types

  • Photo of the Week (photo-of-the-week) — A post type with custom fields for photographer credit and image, with a public archive and REST API support

Custom Templates

  • Post Single — Custom single post template
  • Photo of the Week Archive — Custom archive template for the Photo of the Week post type

Integrations

  • Yoast SEO — Registers primary term support for UCSC-specific taxonomies (academics, administration, person, section, kind)
  • Co-Authors Plus — Adjusts the author block to support multiple authors
  • ACF — Registers a simplified WYSIWYG toolbar (bold, italic, link) used by block fields

Requirements

  • WordPress 5.5+
  • Advanced Custom Fields PRO
  • Define UCSC_NEWS_SITE as true to enable news-specific blocks, post types, templates, and integrations

Project Structure

lib/functions/ Legacy procedural functionality (admin menus, scripts, settings, shortcodes)
src/
Blocks/ ACF block field group definitions
Components/ Block rendering controllers (data preparation for views)
Hooks/ ACF field hooks for dynamic taxonomy/term loading
Integrations/ Third-party plugin integrations (Yoast, ACF toolbars)
Object_Meta/ Custom post meta field definitions
Post_Types/ Custom post type registrations
Query/ Query modifications
Template/ Custom block template registrations and render filters
views/ Block view templates and block.json files
Core.php Plugin bootstrap and service registration

About

Adds custom functionality to UCSC WordPress Websites.

Resources

Contributing

Stars

3 stars

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

UCSC Custom Functionality

Build and release

A WordPress plugin that provides theme-independent custom functionality for UC Santa Cruz websites. By keeping features like custom post types, blocks, shortcodes, and admin customizations separate from the UCSC theme, future theme changes won't affect site functionality.

All Sites

These features are active on every UCSC WordPress site using the plugin.

Admin Customizations

  • Removes the deprecated Link Manager from the dashboard sidebar
  • Hides the Customizer from the admin bar for users without theme editing capabilities

Analytics & Security

  • Google Tag Manager integration for site analytics
  • SiteImprove analytics and accessibility check script

Shortcodes

  • [site-search] — Embeds a Google Site Search results page with context-aware domain detection
  • [copyright] — Displays a copyright symbol with the current year
  • [last-modified] — Shows a post's last modified date (or creation date as a fallback)

Settings Page

An admin settings page under Settings > UCSC Custom Functionality provides plugin version and feature overview

News Block

The News block is available on all sites. It displays news articles with configurable layout, taxonomy filtering, and visibility toggles for image, date, excerpt, author, and tags. Built with Advanced Custom Fields and registered via block.json.

News Sites Only

The following features require the UCSC_NEWS_SITE constant to be defined as true. They provide content management tools tailored to the UCSC news site.

Custom Blocks (ACF)

BlockDescription
Featured NewsQuery-based block for featured stories with a CTA link
MagazineTwo-line title/subtitle layout with repeating items (title, byline, image, description, CTA)
Photo of the WeekSingle photo selector with title and "All Photos" CTA
Press InquiriesUp to 2 inquiry contacts (name, email, phone) plus media file and description
Media CoverageQuery loop for the media coverage post type
Related StoriesDisplays up to 3 manually selected or automatically queried related posts
Post HeaderConfigurable post header layout (small or large image)

Query-based blocks support three query modes: latest posts, automatic (pull from a taxonomy), or manual (select posts individually). Results are cached with 20-minute transients.

Custom Post Types

  • Photo of the Week (photo-of-the-week) — A post type with custom fields for photographer credit and image, with a public archive and REST API support

Custom Templates

  • Post Single — Custom single post template
  • Photo of the Week Archive — Custom archive template for the Photo of the Week post type

Integrations

  • Yoast SEO — Registers primary term support for UCSC-specific taxonomies (academics, administration, person, section, kind)
  • Co-Authors Plus — Adjusts the author block to support multiple authors
  • ACF — Registers a simplified WYSIWYG toolbar (bold, italic, link) used by block fields

Requirements

  • WordPress 5.5+
  • Advanced Custom Fields PRO
  • Define UCSC_NEWS_SITE as true to enable news-specific blocks, post types, templates, and integrations

Project Structure

lib/functions/ Legacy procedural functionality (admin menus, scripts, settings, shortcodes)
src/
Blocks/ ACF block field group definitions
Components/ Block rendering controllers (data preparation for views)
Hooks/ ACF field hooks for dynamic taxonomy/term loading
Integrations/ Third-party plugin integrations (Yoast, ACF toolbars)
Object_Meta/ Custom post meta field definitions
Post_Types/ Custom post type registrations
Query/ Query modifications
Template/ Custom block template registrations and render filters
views/ Block view templates and block.json files
Core.php Plugin bootstrap and service registration

About

Adds custom functionality to UCSC WordPress Websites.

Resources

Contributing

Stars

3 stars

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

UCSC Custom Functionality

Build and release

A WordPress plugin that provides theme-independent custom functionality for UC Santa Cruz websites. By keeping features like custom post types, blocks, shortcodes, and admin customizations separate from the UCSC theme, future theme changes won't affect site functionality.

All Sites

These features are active on every UCSC WordPress site using the plugin.

Admin Customizations

  • Removes the deprecated Link Manager from the dashboard sidebar
  • Hides the Customizer from the admin bar for users without theme editing capabilities

Analytics & Security

  • Google Tag Manager integration for site analytics
  • SiteImprove analytics and accessibility check script

Shortcodes

  • [site-search] — Embeds a Google Site Search results page with context-aware domain detection
  • [copyright] — Displays a copyright symbol with the current year
  • [last-modified] — Shows a post's last modified date (or creation date as a fallback)

Settings Page

An admin settings page under Settings > UCSC Custom Functionality provides plugin version and feature overview

News Block

The News block is available on all sites. It displays news articles with configurable layout, taxonomy filtering, and visibility toggles for image, date, excerpt, author, and tags. Built with Advanced Custom Fields and registered via block.json.

News Sites Only

The following features require the UCSC_NEWS_SITE constant to be defined as true. They provide content management tools tailored to the UCSC news site.

Custom Blocks (ACF)

BlockDescription
Featured NewsQuery-based block for featured stories with a CTA link
MagazineTwo-line title/subtitle layout with repeating items (title, byline, image, description, CTA)
Photo of the WeekSingle photo selector with title and "All Photos" CTA
Press InquiriesUp to 2 inquiry contacts (name, email, phone) plus media file and description
Media CoverageQuery loop for the media coverage post type
Related StoriesDisplays up to 3 manually selected or automatically queried related posts
Post HeaderConfigurable post header layout (small or large image)

Query-based blocks support three query modes: latest posts, automatic (pull from a taxonomy), or manual (select posts individually). Results are cached with 20-minute transients.

Custom Post Types

  • Photo of the Week (photo-of-the-week) — A post type with custom fields for photographer credit and image, with a public archive and REST API support

Custom Templates

  • Post Single — Custom single post template
  • Photo of the Week Archive — Custom archive template for the Photo of the Week post type

Integrations

  • Yoast SEO — Registers primary term support for UCSC-specific taxonomies (academics, administration, person, section, kind)
  • Co-Authors Plus — Adjusts the author block to support multiple authors
  • ACF — Registers a simplified WYSIWYG toolbar (bold, italic, link) used by block fields

Requirements

  • WordPress 5.5+
  • Advanced Custom Fields PRO
  • Define UCSC_NEWS_SITE as true to enable news-specific blocks, post types, templates, and integrations

Project Structure

lib/functions/ Legacy procedural functionality (admin menus, scripts, settings, shortcodes)
src/
Blocks/ ACF block field group definitions
Components/ Block rendering controllers (data preparation for views)
Hooks/ ACF field hooks for dynamic taxonomy/term loading
Integrations/ Third-party plugin integrations (Yoast, ACF toolbars)
Object_Meta/ Custom post meta field definitions
Post_Types/ Custom post type registrations
Query/ Query modifications
Template/ Custom block template registrations and render filters
views/ Block view templates and block.json files
Core.php Plugin bootstrap and service registration

About

Adds custom functionality to UCSC WordPress Websites.

Resources

Contributing

Stars

3 stars

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

UCSC Custom Functionality

Build and release

A WordPress plugin that provides theme-independent custom functionality for UC Santa Cruz websites. By keeping features like custom post types, blocks, shortcodes, and admin customizations separate from the UCSC theme, future theme changes won't affect site functionality.

All Sites

These features are active on every UCSC WordPress site using the plugin.

Admin Customizations

  • Removes the deprecated Link Manager from the dashboard sidebar
  • Hides the Customizer from the admin bar for users without theme editing capabilities

Analytics & Security

  • Google Tag Manager integration for site analytics
  • SiteImprove analytics and accessibility check script

Shortcodes

  • [site-search] — Embeds a Google Site Search results page with context-aware domain detection
  • [copyright] — Displays a copyright symbol with the current year
  • [last-modified] — Shows a post's last modified date (or creation date as a fallback)

Settings Page

An admin settings page under Settings > UCSC Custom Functionality provides plugin version and feature overview

News Block

The News block is available on all sites. It displays news articles with configurable layout, taxonomy filtering, and visibility toggles for image, date, excerpt, author, and tags. Built with Advanced Custom Fields and registered via block.json.

News Sites Only

The following features require the UCSC_NEWS_SITE constant to be defined as true. They provide content management tools tailored to the UCSC news site.

Custom Blocks (ACF)

BlockDescription
Featured NewsQuery-based block for featured stories with a CTA link
MagazineTwo-line title/subtitle layout with repeating items (title, byline, image, description, CTA)
Photo of the WeekSingle photo selector with title and "All Photos" CTA
Press InquiriesUp to 2 inquiry contacts (name, email, phone) plus media file and description
Media CoverageQuery loop for the media coverage post type
Related StoriesDisplays up to 3 manually selected or automatically queried related posts
Post HeaderConfigurable post header layout (small or large image)

Query-based blocks support three query modes: latest posts, automatic (pull from a taxonomy), or manual (select posts individually). Results are cached with 20-minute transients.

Custom Post Types

  • Photo of the Week (photo-of-the-week) — A post type with custom fields for photographer credit and image, with a public archive and REST API support

Custom Templates

  • Post Single — Custom single post template
  • Photo of the Week Archive — Custom archive template for the Photo of the Week post type

Integrations

  • Yoast SEO — Registers primary term support for UCSC-specific taxonomies (academics, administration, person, section, kind)
  • Co-Authors Plus — Adjusts the author block to support multiple authors
  • ACF — Registers a simplified WYSIWYG toolbar (bold, italic, link) used by block fields

Requirements

  • WordPress 5.5+
  • Advanced Custom Fields PRO
  • Define UCSC_NEWS_SITE as true to enable news-specific blocks, post types, templates, and integrations

Project Structure

lib/functions/ Legacy procedural functionality (admin menus, scripts, settings, shortcodes)
src/
Blocks/ ACF block field group definitions
Components/ Block rendering controllers (data preparation for views)
Hooks/ ACF field hooks for dynamic taxonomy/term loading
Integrations/ Third-party plugin integrations (Yoast, ACF toolbars)
Object_Meta/ Custom post meta field definitions
Post_Types/ Custom post type registrations
Query/ Query modifications
Template/ Custom block template registrations and render filters
views/ Block view templates and block.json files
Core.php Plugin bootstrap and service registration

About

Adds custom functionality to UCSC WordPress Websites.

Resources

Contributing

Stars

3 stars

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

UCSC Custom Functionality

Build and release

A WordPress plugin that provides theme-independent custom functionality for UC Santa Cruz websites. By keeping features like custom post types, blocks, shortcodes, and admin customizations separate from the UCSC theme, future theme changes won't affect site functionality.

All Sites

These features are active on every UCSC WordPress site using the plugin.

Admin Customizations

  • Removes the deprecated Link Manager from the dashboard sidebar
  • Hides the Customizer from the admin bar for users without theme editing capabilities

Analytics & Security

  • Google Tag Manager integration for site analytics
  • SiteImprove analytics and accessibility check script

Shortcodes

  • [site-search] — Embeds a Google Site Search results page with context-aware domain detection
  • [copyright] — Displays a copyright symbol with the current year
  • [last-modified] — Shows a post's last modified date (or creation date as a fallback)

Settings Page

An admin settings page under Settings > UCSC Custom Functionality provides plugin version and feature overview

News Block

The News block is available on all sites. It displays news articles with configurable layout, taxonomy filtering, and visibility toggles for image, date, excerpt, author, and tags. Built with Advanced Custom Fields and registered via block.json.

News Sites Only

The following features require the UCSC_NEWS_SITE constant to be defined as true. They provide content management tools tailored to the UCSC news site.

Custom Blocks (ACF)

BlockDescription
Featured NewsQuery-based block for featured stories with a CTA link
MagazineTwo-line title/subtitle layout with repeating items (title, byline, image, description, CTA)
Photo of the WeekSingle photo selector with title and "All Photos" CTA
Press InquiriesUp to 2 inquiry contacts (name, email, phone) plus media file and description
Media CoverageQuery loop for the media coverage post type
Related StoriesDisplays up to 3 manually selected or automatically queried related posts
Post HeaderConfigurable post header layout (small or large image)

Query-based blocks support three query modes: latest posts, automatic (pull from a taxonomy), or manual (select posts individually). Results are cached with 20-minute transients.

Custom Post Types

  • Photo of the Week (photo-of-the-week) — A post type with custom fields for photographer credit and image, with a public archive and REST API support

Custom Templates

  • Post Single — Custom single post template
  • Photo of the Week Archive — Custom archive template for the Photo of the Week post type

Integrations

  • Yoast SEO — Registers primary term support for UCSC-specific taxonomies (academics, administration, person, section, kind)
  • Co-Authors Plus — Adjusts the author block to support multiple authors
  • ACF — Registers a simplified WYSIWYG toolbar (bold, italic, link) used by block fields

Requirements

  • WordPress 5.5+
  • Advanced Custom Fields PRO
  • Define UCSC_NEWS_SITE as true to enable news-specific blocks, post types, templates, and integrations

Project Structure

lib/functions/ Legacy procedural functionality (admin menus, scripts, settings, shortcodes)
src/
Blocks/ ACF block field group definitions
Components/ Block rendering controllers (data preparation for views)
Hooks/ ACF field hooks for dynamic taxonomy/term loading
Integrations/ Third-party plugin integrations (Yoast, ACF toolbars)
Object_Meta/ Custom post meta field definitions
Post_Types/ Custom post type registrations
Query/ Query modifications
Template/ Custom block template registrations and render filters
views/ Block view templates and block.json files
Core.php Plugin bootstrap and service registration

About

Adds custom functionality to UCSC WordPress Websites.

Resources

Contributing

Stars

3 stars

Watchers

2 watching

Forks

Releases

Used by

Contributors

Languages