feat: Initial WordPress project
This commit is contained in:
25
.gitignore
vendored
Normal file
25
.gitignore
vendored
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
# Project-specific files
|
||||||
|
/*
|
||||||
|
!/.cpanel.yml
|
||||||
|
!/.gitea
|
||||||
|
!/.github
|
||||||
|
!/.gitignore
|
||||||
|
!/.vscode
|
||||||
|
!/README.md
|
||||||
|
!/composer.*
|
||||||
|
!/phpcs.xml
|
||||||
|
!/project.code-workspace
|
||||||
|
!/wp-content/
|
||||||
|
/wp-content/*
|
||||||
|
|
||||||
|
# Version-controlled plugins
|
||||||
|
!/wp-content/mu-plugins/
|
||||||
|
!/wp-content/plugins/
|
||||||
|
/wp-content/plugins/*
|
||||||
|
!/wp-content/plugins/.gitkeep
|
||||||
|
|
||||||
|
# Version-controlled themes
|
||||||
|
!/wp-content/themes/
|
||||||
|
/wp-content/themes/*
|
||||||
|
!/wp-content/themes/.gitkeep
|
||||||
|
!/wp-content/themes/headless/
|
||||||
5
README.md
Normal file
5
README.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# Headless
|
||||||
|
|
||||||
|
Headless WordPress project boilerplate using Nuxt.
|
||||||
|
|
||||||
|
✨ [Release notes](/wp-content/themes/headless/CHANGELOG.md)
|
||||||
48
composer.json
Normal file
48
composer.json
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
{
|
||||||
|
"name": "lewebsimple/headless",
|
||||||
|
"description": "WordPress project",
|
||||||
|
"type": "project",
|
||||||
|
"license": "MIT",
|
||||||
|
"repositories": [
|
||||||
|
{
|
||||||
|
"type": "composer",
|
||||||
|
"url": "https://satis.ledevsimple.ca"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "composer",
|
||||||
|
"url": "https://wpackagist.org"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"prefer-stable": true,
|
||||||
|
"config": {
|
||||||
|
"allow-plugins": {
|
||||||
|
"composer/installers": true,
|
||||||
|
"dealerdirect/phpcodesniffer-composer-installer": true
|
||||||
|
},
|
||||||
|
"optimize-autoloader": true,
|
||||||
|
"preferred-install": "dist",
|
||||||
|
"sort-packages": true
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"lint": "vendor/bin/phpcs",
|
||||||
|
"lintfix": "vendor/bin/phpcbf"
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"axepress/wp-graphql-rank-math": "*",
|
||||||
|
"lewebsimple/acf-phone": "*",
|
||||||
|
"lewebsimple/advanced-custom-fields-pro": "*",
|
||||||
|
"lewebsimple/kaliroots": "*",
|
||||||
|
"lewebsimple/wp-graphql-headless-login": "*",
|
||||||
|
"wpackagist-plugin/acf-extended": "*",
|
||||||
|
"wpackagist-plugin/clean-image-filenames": "*",
|
||||||
|
"wpackagist-plugin/disable-comments": "*",
|
||||||
|
"wpackagist-plugin/media-focus-point": "*",
|
||||||
|
"wpackagist-plugin/seo-by-rank-math": "*",
|
||||||
|
"wpackagist-plugin/wp-graphql": "*",
|
||||||
|
"wpackagist-plugin/wpgraphql-acf": "*"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"lewebsimple/wp-phpcs-ruleset": "*",
|
||||||
|
"squizlabs/php_codesniffer": "*"
|
||||||
|
}
|
||||||
|
}
|
||||||
995
composer.lock
generated
Normal file
995
composer.lock
generated
Normal file
@@ -0,0 +1,995 @@
|
|||||||
|
{
|
||||||
|
"_readme": [
|
||||||
|
"This file locks the dependencies of your project to a known state",
|
||||||
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
|
"This file is @generated automatically"
|
||||||
|
],
|
||||||
|
"content-hash": "a1b040fb49fb0a59dd39debcaec4386d",
|
||||||
|
"packages": [
|
||||||
|
{
|
||||||
|
"name": "axepress/wp-graphql-plugin-boilerplate",
|
||||||
|
"version": "0.1.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/AxeWP/wp-graphql-plugin-boilerplate.git",
|
||||||
|
"reference": "09495b61346453baabdf4c71a38ada3cfc91c3a7"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/AxeWP/wp-graphql-plugin-boilerplate/zipball/09495b61346453baabdf4c71a38ada3cfc91c3a7",
|
||||||
|
"reference": "09495b61346453baabdf4c71a38ada3cfc91c3a7",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=7.4"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"axepress/wp-graphql-cs": "^2.0.0",
|
||||||
|
"axepress/wp-graphql-stubs": "^2.3.0",
|
||||||
|
"phpcompatibility/php-compatibility": "dev-develop as 9.9.9",
|
||||||
|
"phpstan/extension-installer": "^1.1",
|
||||||
|
"phpstan/phpstan": "^2.0",
|
||||||
|
"phpstan/phpstan-deprecation-rules": "^2.0.1",
|
||||||
|
"szepeviktor/phpstan-wordpress": "^2.0",
|
||||||
|
"wp-cli/wp-cli-bundle": "^2.8.1"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"AxeWP\\GraphQL\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"GPL-3.0-or-later"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "AxePress Development",
|
||||||
|
"homepage": "https://axepress.dev"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "David Levine",
|
||||||
|
"role": "Developer"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Boilerplate for creating WPGraphQL extensions",
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/AxeWP/wp-graphql-plugin-boilerplate/issues",
|
||||||
|
"source": "https://github.com/AxeWP/wp-graphql-plugin-boilerplate/tree/0.1.1"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://github.com/AxeWp",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2025-06-07T02:03:50+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "axepress/wp-graphql-rank-math",
|
||||||
|
"version": "0.3.4",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/AxeWP/wp-graphql-rank-math.git",
|
||||||
|
"reference": "167bdd4a5350717ed34069c304e0ffc3fe02bc7d"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/AxeWP/wp-graphql-rank-math/zipball/167bdd4a5350717ed34069c304e0ffc3fe02bc7d",
|
||||||
|
"reference": "167bdd4a5350717ed34069c304e0ffc3fe02bc7d",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"axepress/wp-graphql-plugin-boilerplate": "^0.1.1",
|
||||||
|
"php": ">=7.4"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"axepress/wp-graphql-cs": "^2.0.0",
|
||||||
|
"axepress/wp-graphql-stubs": "^2.0.0",
|
||||||
|
"codeception/lib-innerbrowser": "^1.0",
|
||||||
|
"codeception/module-asserts": "^1.0",
|
||||||
|
"codeception/module-cli": "^1.0",
|
||||||
|
"codeception/module-db": "^1.0",
|
||||||
|
"codeception/module-filesystem": "^1.0",
|
||||||
|
"codeception/module-phpbrowser": "^1.0",
|
||||||
|
"codeception/module-rest": "^2.0",
|
||||||
|
"codeception/module-webdriver": "^1.0",
|
||||||
|
"codeception/phpunit-wrapper": "^9.0",
|
||||||
|
"codeception/util-universalframework": "^1.0",
|
||||||
|
"lucatume/wp-browser": "<3.5",
|
||||||
|
"php-coveralls/php-coveralls": "^2.5",
|
||||||
|
"phpcompatibility/php-compatibility": "dev-develop as 9.9.9",
|
||||||
|
"phpstan/extension-installer": "^1.1",
|
||||||
|
"phpstan/phpstan": "^2.1.5",
|
||||||
|
"phpunit/phpunit": "^9.5",
|
||||||
|
"szepeviktor/phpstan-wordpress": "^2.0.1",
|
||||||
|
"wp-cli/wp-cli-bundle": "^2.8.1",
|
||||||
|
"wp-graphql/wp-graphql-testcase": "~3.4.0"
|
||||||
|
},
|
||||||
|
"type": "wordpress-plugin",
|
||||||
|
"extra": {
|
||||||
|
"strauss": {
|
||||||
|
"packages": [
|
||||||
|
"axepress/wp-graphql-plugin-boilerplate"
|
||||||
|
],
|
||||||
|
"classmap_prefix": "WPGraphQL_RankMath_",
|
||||||
|
"constant_prefix": "WPGRAPHQL_SEO_",
|
||||||
|
"namespace_prefix": "WPGraphQL\\RankMath\\Vendor\\",
|
||||||
|
"target_directory": "vendor-prefixed",
|
||||||
|
"update_call_sites": false,
|
||||||
|
"exclude_from_prefix": {
|
||||||
|
"namespaces": [],
|
||||||
|
"file_patterns": []
|
||||||
|
},
|
||||||
|
"include_modified_date": false,
|
||||||
|
"delete_vendor_packages": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"files": [
|
||||||
|
"access-functions.php"
|
||||||
|
],
|
||||||
|
"psr-4": {
|
||||||
|
"WPGraphQL\\RankMath\\": "src/"
|
||||||
|
},
|
||||||
|
"classmap": [
|
||||||
|
"vendor-prefixed/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"GPL-3.0-or-later"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "AxePress Development",
|
||||||
|
"email": "support@axepress.dev",
|
||||||
|
"homepage": "https://axepress.dev"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "David Levine",
|
||||||
|
"role": "Developer"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Adds WPGraphQL support for RankMath SEO",
|
||||||
|
"support": {
|
||||||
|
"email": "support@axepress.dev",
|
||||||
|
"forum": "https://github.com/AxeWP/wp-graphql-rank-math/discussions",
|
||||||
|
"issues": "https://github.com/AxeWP/wp-graphql-rank-math/issues",
|
||||||
|
"source": "https://github.com/AxeWP/wp-graphql-rank-math/tree/0.3.4"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://github.com/sponsors/AxeWP",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2025-06-07T12:05:15+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "composer/installers",
|
||||||
|
"version": "v2.3.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/composer/installers.git",
|
||||||
|
"reference": "12fb2dfe5e16183de69e784a7b84046c43d97e8e"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/composer/installers/zipball/12fb2dfe5e16183de69e784a7b84046c43d97e8e",
|
||||||
|
"reference": "12fb2dfe5e16183de69e784a7b84046c43d97e8e",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"composer-plugin-api": "^1.0 || ^2.0",
|
||||||
|
"php": "^7.2 || ^8.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"composer/composer": "^1.10.27 || ^2.7",
|
||||||
|
"composer/semver": "^1.7.2 || ^3.4.0",
|
||||||
|
"phpstan/phpstan": "^1.11",
|
||||||
|
"phpstan/phpstan-phpunit": "^1",
|
||||||
|
"symfony/phpunit-bridge": "^7.1.1",
|
||||||
|
"symfony/process": "^5 || ^6 || ^7"
|
||||||
|
},
|
||||||
|
"type": "composer-plugin",
|
||||||
|
"extra": {
|
||||||
|
"class": "Composer\\Installers\\Plugin",
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-main": "2.x-dev"
|
||||||
|
},
|
||||||
|
"plugin-modifies-install-path": true
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Composer\\Installers\\": "src/Composer/Installers"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Kyle Robinson Young",
|
||||||
|
"email": "kyle@dontkry.com",
|
||||||
|
"homepage": "https://github.com/shama"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "A multi-framework Composer library installer",
|
||||||
|
"homepage": "https://composer.github.io/installers/",
|
||||||
|
"keywords": [
|
||||||
|
"Dolibarr",
|
||||||
|
"Eliasis",
|
||||||
|
"Hurad",
|
||||||
|
"ImageCMS",
|
||||||
|
"Kanboard",
|
||||||
|
"Lan Management System",
|
||||||
|
"MODX Evo",
|
||||||
|
"MantisBT",
|
||||||
|
"Mautic",
|
||||||
|
"Maya",
|
||||||
|
"OXID",
|
||||||
|
"Plentymarkets",
|
||||||
|
"Porto",
|
||||||
|
"RadPHP",
|
||||||
|
"SMF",
|
||||||
|
"Starbug",
|
||||||
|
"Thelia",
|
||||||
|
"Whmcs",
|
||||||
|
"WolfCMS",
|
||||||
|
"agl",
|
||||||
|
"annotatecms",
|
||||||
|
"attogram",
|
||||||
|
"bitrix",
|
||||||
|
"cakephp",
|
||||||
|
"chef",
|
||||||
|
"cockpit",
|
||||||
|
"codeigniter",
|
||||||
|
"concrete5",
|
||||||
|
"concreteCMS",
|
||||||
|
"croogo",
|
||||||
|
"dokuwiki",
|
||||||
|
"drupal",
|
||||||
|
"eZ Platform",
|
||||||
|
"elgg",
|
||||||
|
"expressionengine",
|
||||||
|
"fuelphp",
|
||||||
|
"grav",
|
||||||
|
"installer",
|
||||||
|
"itop",
|
||||||
|
"known",
|
||||||
|
"kohana",
|
||||||
|
"laravel",
|
||||||
|
"lavalite",
|
||||||
|
"lithium",
|
||||||
|
"magento",
|
||||||
|
"majima",
|
||||||
|
"mako",
|
||||||
|
"matomo",
|
||||||
|
"mediawiki",
|
||||||
|
"miaoxing",
|
||||||
|
"modulework",
|
||||||
|
"modx",
|
||||||
|
"moodle",
|
||||||
|
"osclass",
|
||||||
|
"pantheon",
|
||||||
|
"phpbb",
|
||||||
|
"piwik",
|
||||||
|
"ppi",
|
||||||
|
"processwire",
|
||||||
|
"puppet",
|
||||||
|
"pxcms",
|
||||||
|
"reindex",
|
||||||
|
"roundcube",
|
||||||
|
"shopware",
|
||||||
|
"silverstripe",
|
||||||
|
"sydes",
|
||||||
|
"sylius",
|
||||||
|
"tastyigniter",
|
||||||
|
"wordpress",
|
||||||
|
"yawik",
|
||||||
|
"zend",
|
||||||
|
"zikula"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/composer/installers/issues",
|
||||||
|
"source": "https://github.com/composer/installers/tree/v2.3.0"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://packagist.com",
|
||||||
|
"type": "custom"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/composer",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/composer/composer",
|
||||||
|
"type": "tidelift"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2024-06-24T20:46:46+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "lewebsimple/acf-phone",
|
||||||
|
"version": "v3.1.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/lewebsimple/acf-phone.git",
|
||||||
|
"reference": "f9cb86eacb26eb92a40eb5e4366cff3e58e01f47"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://satis.ledevsimple.ca/dist/lewebsimple/acf-phone/lewebsimple-acf-phone-f9cb86eacb26eb92a40eb5e4366cff3e58e01f47-zip-606a09.zip",
|
||||||
|
"reference": "f9cb86eacb26eb92a40eb5e4366cff3e58e01f47",
|
||||||
|
"shasum": "2bbbc7d7f917e278d7d913bcb9da07a30f4662e6"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"lewebsimple/wp-phpcs-ruleset": "*",
|
||||||
|
"php-stubs/acf-pro-stubs": "*",
|
||||||
|
"squizlabs/php_codesniffer": "*"
|
||||||
|
},
|
||||||
|
"type": "wordpress-plugin",
|
||||||
|
"scripts": {
|
||||||
|
"post-create-project-cmd": [
|
||||||
|
"./scripts/post-create.sh"
|
||||||
|
],
|
||||||
|
"lint": [
|
||||||
|
"vendor/bin/phpcs"
|
||||||
|
],
|
||||||
|
"lintfix": [
|
||||||
|
"vendor/bin/phpcbf"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"support": {
|
||||||
|
"source": "https://github.com/lewebsimple/acf-phone/tree/v3.1.1",
|
||||||
|
"issues": "https://github.com/lewebsimple/acf-phone/issues"
|
||||||
|
},
|
||||||
|
"time": "2026-02-10T17:56:38+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "lewebsimple/advanced-custom-fields-pro",
|
||||||
|
"version": "v6.7.0.2",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "ssh://git@gitea.websimple.com:222/wp-plugins/advanced-custom-fields-pro.git",
|
||||||
|
"reference": "0f05fc999189ec688c19abe4d8c889f947ec96c3"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://satis.ledevsimple.ca/dist/lewebsimple/advanced-custom-fields-pro/lewebsimple-advanced-custom-fields-pro-v6.7.0.2-911a1f.zip",
|
||||||
|
"reference": "0f05fc999189ec688c19abe4d8c889f947ec96c3",
|
||||||
|
"shasum": "2782595387ea3b62a81cdb0a79ec75e9beca8aa7"
|
||||||
|
},
|
||||||
|
"type": "wordpress-plugin",
|
||||||
|
"time": "2025-12-12T16:12:43+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "lewebsimple/kaliroots",
|
||||||
|
"version": "v0.9.19",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "ssh://git@gitea.websimple.com:222/wp-themes/kaliroots.git",
|
||||||
|
"reference": "40789468328e126cec9bd2f85a6a9923663a8d91"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://satis.ledevsimple.ca/dist/lewebsimple/kaliroots/lewebsimple-kaliroots-v0.9.19-12b0b3.zip",
|
||||||
|
"reference": "40789468328e126cec9bd2f85a6a9923663a8d91",
|
||||||
|
"shasum": "0a4cadbbc7719ee7de94b5cff4b2bb9c436f6416"
|
||||||
|
},
|
||||||
|
"type": "wordpress-theme",
|
||||||
|
"time": "2026-02-09T15:07:56+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "lewebsimple/wp-graphql-headless-login",
|
||||||
|
"version": "v0.4.4",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "ssh://git@gitea.websimple.com:222/wp-plugins/wp-graphql-headless-login.git",
|
||||||
|
"reference": "1df7b88b18b5a064d6f7237acbd7607050a1adfc"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://satis.ledevsimple.ca/dist/lewebsimple/wp-graphql-headless-login/lewebsimple-wp-graphql-headless-login-v0.4.4-55b70a.zip",
|
||||||
|
"reference": "1df7b88b18b5a064d6f7237acbd7607050a1adfc",
|
||||||
|
"shasum": "2ff58080a20c4529c82015c821c22a29fd8cdd3e"
|
||||||
|
},
|
||||||
|
"type": "wordpress-plugin",
|
||||||
|
"time": "2025-10-10T13:00:48+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wpackagist-plugin/acf-extended",
|
||||||
|
"version": "0.9.2.3",
|
||||||
|
"source": {
|
||||||
|
"type": "svn",
|
||||||
|
"url": "https://plugins.svn.wordpress.org/acf-extended/",
|
||||||
|
"reference": "tags/0.9.2.3"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://downloads.wordpress.org/plugin/acf-extended.0.9.2.3.zip"
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"composer/installers": "^1.0 || ^2.0"
|
||||||
|
},
|
||||||
|
"type": "wordpress-plugin",
|
||||||
|
"homepage": "https://wordpress.org/plugins/acf-extended/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wpackagist-plugin/clean-image-filenames",
|
||||||
|
"version": "1.5",
|
||||||
|
"source": {
|
||||||
|
"type": "svn",
|
||||||
|
"url": "https://plugins.svn.wordpress.org/clean-image-filenames/",
|
||||||
|
"reference": "tags/1.5"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://downloads.wordpress.org/plugin/clean-image-filenames.1.5.zip"
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"composer/installers": "^1.0 || ^2.0"
|
||||||
|
},
|
||||||
|
"type": "wordpress-plugin",
|
||||||
|
"homepage": "https://wordpress.org/plugins/clean-image-filenames/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wpackagist-plugin/disable-comments",
|
||||||
|
"version": "2.6.2",
|
||||||
|
"source": {
|
||||||
|
"type": "svn",
|
||||||
|
"url": "https://plugins.svn.wordpress.org/disable-comments/",
|
||||||
|
"reference": "tags/2.6.2"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://downloads.wordpress.org/plugin/disable-comments.2.6.2.zip"
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"composer/installers": "^1.0 || ^2.0"
|
||||||
|
},
|
||||||
|
"type": "wordpress-plugin",
|
||||||
|
"homepage": "https://wordpress.org/plugins/disable-comments/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wpackagist-plugin/media-focus-point",
|
||||||
|
"version": "2.0.5",
|
||||||
|
"source": {
|
||||||
|
"type": "svn",
|
||||||
|
"url": "https://plugins.svn.wordpress.org/media-focus-point/",
|
||||||
|
"reference": "tags/2.0.5"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://downloads.wordpress.org/plugin/media-focus-point.2.0.5.zip"
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"composer/installers": "^1.0 || ^2.0"
|
||||||
|
},
|
||||||
|
"type": "wordpress-plugin",
|
||||||
|
"homepage": "https://wordpress.org/plugins/media-focus-point/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wpackagist-plugin/seo-by-rank-math",
|
||||||
|
"version": "1.0.266",
|
||||||
|
"source": {
|
||||||
|
"type": "svn",
|
||||||
|
"url": "https://plugins.svn.wordpress.org/seo-by-rank-math/",
|
||||||
|
"reference": "tags/1.0.266"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://downloads.wordpress.org/plugin/seo-by-rank-math.1.0.266.zip"
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"composer/installers": "^1.0 || ^2.0"
|
||||||
|
},
|
||||||
|
"type": "wordpress-plugin",
|
||||||
|
"homepage": "https://wordpress.org/plugins/seo-by-rank-math/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wpackagist-plugin/wp-graphql",
|
||||||
|
"version": "2.10.0",
|
||||||
|
"source": {
|
||||||
|
"type": "svn",
|
||||||
|
"url": "https://plugins.svn.wordpress.org/wp-graphql/",
|
||||||
|
"reference": "tags/2.10.0"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://downloads.wordpress.org/plugin/wp-graphql.2.10.0.zip"
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"composer/installers": "^1.0 || ^2.0"
|
||||||
|
},
|
||||||
|
"type": "wordpress-plugin",
|
||||||
|
"homepage": "https://wordpress.org/plugins/wp-graphql/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wpackagist-plugin/wpgraphql-acf",
|
||||||
|
"version": "2.5.1",
|
||||||
|
"source": {
|
||||||
|
"type": "svn",
|
||||||
|
"url": "https://plugins.svn.wordpress.org/wpgraphql-acf/",
|
||||||
|
"reference": "tags/2.5.1"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://downloads.wordpress.org/plugin/wpgraphql-acf.2.5.1.zip"
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"composer/installers": "^1.0 || ^2.0"
|
||||||
|
},
|
||||||
|
"type": "wordpress-plugin",
|
||||||
|
"homepage": "https://wordpress.org/plugins/wpgraphql-acf/"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"packages-dev": [
|
||||||
|
{
|
||||||
|
"name": "dealerdirect/phpcodesniffer-composer-installer",
|
||||||
|
"version": "v1.2.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/PHPCSStandards/composer-installer.git",
|
||||||
|
"reference": "845eb62303d2ca9b289ef216356568ccc075ffd1"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/845eb62303d2ca9b289ef216356568ccc075ffd1",
|
||||||
|
"reference": "845eb62303d2ca9b289ef216356568ccc075ffd1",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"composer-plugin-api": "^2.2",
|
||||||
|
"php": ">=5.4",
|
||||||
|
"squizlabs/php_codesniffer": "^3.1.0 || ^4.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"composer/composer": "^2.2",
|
||||||
|
"ext-json": "*",
|
||||||
|
"ext-zip": "*",
|
||||||
|
"php-parallel-lint/php-parallel-lint": "^1.4.0",
|
||||||
|
"phpcompatibility/php-compatibility": "^9.0 || ^10.0.0@dev",
|
||||||
|
"yoast/phpunit-polyfills": "^1.0"
|
||||||
|
},
|
||||||
|
"type": "composer-plugin",
|
||||||
|
"extra": {
|
||||||
|
"class": "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin"
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Franck Nijhof",
|
||||||
|
"email": "opensource@frenck.dev",
|
||||||
|
"homepage": "https://frenck.dev",
|
||||||
|
"role": "Open source developer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Contributors",
|
||||||
|
"homepage": "https://github.com/PHPCSStandards/composer-installer/graphs/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "PHP_CodeSniffer Standards Composer Installer Plugin",
|
||||||
|
"keywords": [
|
||||||
|
"PHPCodeSniffer",
|
||||||
|
"PHP_CodeSniffer",
|
||||||
|
"code quality",
|
||||||
|
"codesniffer",
|
||||||
|
"composer",
|
||||||
|
"installer",
|
||||||
|
"phpcbf",
|
||||||
|
"phpcs",
|
||||||
|
"plugin",
|
||||||
|
"qa",
|
||||||
|
"quality",
|
||||||
|
"standard",
|
||||||
|
"standards",
|
||||||
|
"style guide",
|
||||||
|
"stylecheck",
|
||||||
|
"tests"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/PHPCSStandards/composer-installer/issues",
|
||||||
|
"security": "https://github.com/PHPCSStandards/composer-installer/security/policy",
|
||||||
|
"source": "https://github.com/PHPCSStandards/composer-installer"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://github.com/PHPCSStandards",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/jrfnl",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://opencollective.com/php_codesniffer",
|
||||||
|
"type": "open_collective"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://thanks.dev/u/gh/phpcsstandards",
|
||||||
|
"type": "thanks_dev"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2025-11-11T04:32:07+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "lewebsimple/wp-phpcs-ruleset",
|
||||||
|
"version": "0.1.5",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/lewebsimple/wp-phpcs-ruleset.git",
|
||||||
|
"reference": "8467947b62d2c394819aa7313ddcb09086da53bb"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/lewebsimple/wp-phpcs-ruleset/zipball/8467947b62d2c394819aa7313ddcb09086da53bb",
|
||||||
|
"reference": "8467947b62d2c394819aa7313ddcb09086da53bb",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"wp-coding-standards/wpcs": "*"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"dealerdirect/phpcodesniffer-composer-installer": "*"
|
||||||
|
},
|
||||||
|
"type": "phpcodesniffer-standard",
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Pascal Martineau",
|
||||||
|
"email": "pascal@lewebsimple.ca"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Shared PHPCS ruleset for WordPress projects",
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/lewebsimple/wp-phpcs-ruleset/issues",
|
||||||
|
"source": "https://github.com/lewebsimple/wp-phpcs-ruleset/tree/v0.1.5"
|
||||||
|
},
|
||||||
|
"time": "2025-12-03T16:04:08+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "phpcsstandards/phpcsextra",
|
||||||
|
"version": "1.5.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/PHPCSStandards/PHPCSExtra.git",
|
||||||
|
"reference": "b598aa890815b8df16363271b659d73280129101"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/PHPCSStandards/PHPCSExtra/zipball/b598aa890815b8df16363271b659d73280129101",
|
||||||
|
"reference": "b598aa890815b8df16363271b659d73280129101",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.4",
|
||||||
|
"phpcsstandards/phpcsutils": "^1.2.0",
|
||||||
|
"squizlabs/php_codesniffer": "^3.13.5 || ^4.0.1"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"php-parallel-lint/php-console-highlighter": "^1.0",
|
||||||
|
"php-parallel-lint/php-parallel-lint": "^1.4.0",
|
||||||
|
"phpcsstandards/phpcsdevcs": "^1.2.0",
|
||||||
|
"phpcsstandards/phpcsdevtools": "^1.2.1",
|
||||||
|
"phpunit/phpunit": "^4.5 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4"
|
||||||
|
},
|
||||||
|
"type": "phpcodesniffer-standard",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-stable": "1.x-dev",
|
||||||
|
"dev-develop": "1.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"LGPL-3.0-or-later"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Juliette Reinders Folmer",
|
||||||
|
"homepage": "https://github.com/jrfnl",
|
||||||
|
"role": "lead"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Contributors",
|
||||||
|
"homepage": "https://github.com/PHPCSStandards/PHPCSExtra/graphs/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "A collection of sniffs and standards for use with PHP_CodeSniffer.",
|
||||||
|
"keywords": [
|
||||||
|
"PHP_CodeSniffer",
|
||||||
|
"phpcbf",
|
||||||
|
"phpcodesniffer-standard",
|
||||||
|
"phpcs",
|
||||||
|
"standards",
|
||||||
|
"static analysis"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/PHPCSStandards/PHPCSExtra/issues",
|
||||||
|
"security": "https://github.com/PHPCSStandards/PHPCSExtra/security/policy",
|
||||||
|
"source": "https://github.com/PHPCSStandards/PHPCSExtra"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://github.com/PHPCSStandards",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/jrfnl",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://opencollective.com/php_codesniffer",
|
||||||
|
"type": "open_collective"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://thanks.dev/u/gh/phpcsstandards",
|
||||||
|
"type": "thanks_dev"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2025-11-12T23:06:57+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "phpcsstandards/phpcsutils",
|
||||||
|
"version": "1.2.2",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/PHPCSStandards/PHPCSUtils.git",
|
||||||
|
"reference": "c216317e96c8b3f5932808f9b0f1f7a14e3bbf55"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/PHPCSStandards/PHPCSUtils/zipball/c216317e96c8b3f5932808f9b0f1f7a14e3bbf55",
|
||||||
|
"reference": "c216317e96c8b3f5932808f9b0f1f7a14e3bbf55",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"dealerdirect/phpcodesniffer-composer-installer": "^0.4.1 || ^0.5 || ^0.6.2 || ^0.7 || ^1.0",
|
||||||
|
"php": ">=5.4",
|
||||||
|
"squizlabs/php_codesniffer": "^3.13.5 || ^4.0.1"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"ext-filter": "*",
|
||||||
|
"php-parallel-lint/php-console-highlighter": "^1.0",
|
||||||
|
"php-parallel-lint/php-parallel-lint": "^1.4.0",
|
||||||
|
"phpcsstandards/phpcsdevcs": "^1.2.0",
|
||||||
|
"yoast/phpunit-polyfills": "^1.1.0 || ^2.0.0 || ^3.0.0"
|
||||||
|
},
|
||||||
|
"type": "phpcodesniffer-standard",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-stable": "1.x-dev",
|
||||||
|
"dev-develop": "1.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"classmap": [
|
||||||
|
"PHPCSUtils/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"LGPL-3.0-or-later"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Juliette Reinders Folmer",
|
||||||
|
"homepage": "https://github.com/jrfnl",
|
||||||
|
"role": "lead"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Contributors",
|
||||||
|
"homepage": "https://github.com/PHPCSStandards/PHPCSUtils/graphs/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "A suite of utility functions for use with PHP_CodeSniffer",
|
||||||
|
"homepage": "https://phpcsutils.com/",
|
||||||
|
"keywords": [
|
||||||
|
"PHP_CodeSniffer",
|
||||||
|
"phpcbf",
|
||||||
|
"phpcodesniffer-standard",
|
||||||
|
"phpcs",
|
||||||
|
"phpcs3",
|
||||||
|
"phpcs4",
|
||||||
|
"standards",
|
||||||
|
"static analysis",
|
||||||
|
"tokens",
|
||||||
|
"utility"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"docs": "https://phpcsutils.com/",
|
||||||
|
"issues": "https://github.com/PHPCSStandards/PHPCSUtils/issues",
|
||||||
|
"security": "https://github.com/PHPCSStandards/PHPCSUtils/security/policy",
|
||||||
|
"source": "https://github.com/PHPCSStandards/PHPCSUtils"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://github.com/PHPCSStandards",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/jrfnl",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://opencollective.com/php_codesniffer",
|
||||||
|
"type": "open_collective"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://thanks.dev/u/gh/phpcsstandards",
|
||||||
|
"type": "thanks_dev"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2025-12-08T14:27:58+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "squizlabs/php_codesniffer",
|
||||||
|
"version": "3.13.5",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git",
|
||||||
|
"reference": "0ca86845ce43291e8f5692c7356fccf3bcf02bf4"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/0ca86845ce43291e8f5692c7356fccf3bcf02bf4",
|
||||||
|
"reference": "0ca86845ce43291e8f5692c7356fccf3bcf02bf4",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-simplexml": "*",
|
||||||
|
"ext-tokenizer": "*",
|
||||||
|
"ext-xmlwriter": "*",
|
||||||
|
"php": ">=5.4.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4"
|
||||||
|
},
|
||||||
|
"bin": [
|
||||||
|
"bin/phpcbf",
|
||||||
|
"bin/phpcs"
|
||||||
|
],
|
||||||
|
"type": "library",
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-3-Clause"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Greg Sherwood",
|
||||||
|
"role": "Former lead"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Juliette Reinders Folmer",
|
||||||
|
"role": "Current lead"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Contributors",
|
||||||
|
"homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
|
||||||
|
"homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer",
|
||||||
|
"keywords": [
|
||||||
|
"phpcs",
|
||||||
|
"standards",
|
||||||
|
"static analysis"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues",
|
||||||
|
"security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy",
|
||||||
|
"source": "https://github.com/PHPCSStandards/PHP_CodeSniffer",
|
||||||
|
"wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://github.com/PHPCSStandards",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/jrfnl",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://opencollective.com/php_codesniffer",
|
||||||
|
"type": "open_collective"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://thanks.dev/u/gh/phpcsstandards",
|
||||||
|
"type": "thanks_dev"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2025-11-04T16:30:35+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wp-coding-standards/wpcs",
|
||||||
|
"version": "3.3.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/WordPress/WordPress-Coding-Standards.git",
|
||||||
|
"reference": "7795ec6fa05663d716a549d0b44e47ffc8b0d4a6"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/7795ec6fa05663d716a549d0b44e47ffc8b0d4a6",
|
||||||
|
"reference": "7795ec6fa05663d716a549d0b44e47ffc8b0d4a6",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-filter": "*",
|
||||||
|
"ext-libxml": "*",
|
||||||
|
"ext-tokenizer": "*",
|
||||||
|
"ext-xmlreader": "*",
|
||||||
|
"php": ">=7.2",
|
||||||
|
"phpcsstandards/phpcsextra": "^1.5.0",
|
||||||
|
"phpcsstandards/phpcsutils": "^1.1.0",
|
||||||
|
"squizlabs/php_codesniffer": "^3.13.4"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"php-parallel-lint/php-console-highlighter": "^1.0.0",
|
||||||
|
"php-parallel-lint/php-parallel-lint": "^1.4.0",
|
||||||
|
"phpcompatibility/php-compatibility": "^10.0.0@dev",
|
||||||
|
"phpcsstandards/phpcsdevtools": "^1.2.0",
|
||||||
|
"phpunit/phpunit": "^8.0 || ^9.0"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"ext-iconv": "For improved results",
|
||||||
|
"ext-mbstring": "For improved results"
|
||||||
|
},
|
||||||
|
"type": "phpcodesniffer-standard",
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Contributors",
|
||||||
|
"homepage": "https://github.com/WordPress/WordPress-Coding-Standards/graphs/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions",
|
||||||
|
"keywords": [
|
||||||
|
"phpcs",
|
||||||
|
"standards",
|
||||||
|
"static analysis",
|
||||||
|
"wordpress"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/WordPress/WordPress-Coding-Standards/issues",
|
||||||
|
"source": "https://github.com/WordPress/WordPress-Coding-Standards",
|
||||||
|
"wiki": "https://github.com/WordPress/WordPress-Coding-Standards/wiki"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://opencollective.com/php_codesniffer",
|
||||||
|
"type": "custom"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2025-11-25T12:08:04+00:00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"aliases": [],
|
||||||
|
"minimum-stability": "stable",
|
||||||
|
"stability-flags": {},
|
||||||
|
"prefer-stable": true,
|
||||||
|
"prefer-lowest": false,
|
||||||
|
"platform": {},
|
||||||
|
"platform-dev": {},
|
||||||
|
"plugin-api-version": "2.9.0"
|
||||||
|
}
|
||||||
5
phpcs.xml
Normal file
5
phpcs.xml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<ruleset name="Headless">
|
||||||
|
<rule ref="WebsimpleWP"/>
|
||||||
|
<file>wp-content/themes/headless/</file>
|
||||||
|
</ruleset>
|
||||||
30
project.code-workspace
Normal file
30
project.code-workspace
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"folders": [
|
||||||
|
{
|
||||||
|
"name": "Nuxt",
|
||||||
|
"path": "wp-content/themes/headless"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "WordPress",
|
||||||
|
"path": "."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"settings": {
|
||||||
|
"files.associations": {
|
||||||
|
"*.css": "tailwindcss"
|
||||||
|
},
|
||||||
|
"editor.quickSuggestions": {
|
||||||
|
"strings": "on"
|
||||||
|
},
|
||||||
|
"tailwindCSS.classAttributes": [
|
||||||
|
"class",
|
||||||
|
"ui"
|
||||||
|
],
|
||||||
|
"tailwindCSS.experimental.classRegex": [
|
||||||
|
[
|
||||||
|
"ui:\\s*{([^)]*)\\s*}",
|
||||||
|
"(?:'|\"|`)([^']*)(?:'|\"|`)"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
0
wp-content/mu-plugins/.gitkeep
Normal file
0
wp-content/mu-plugins/.gitkeep
Normal file
10
wp-content/mu-plugins/disable-headless-update.php
Normal file
10
wp-content/mu-plugins/disable-headless-update.php
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Disable 'headless' theme updates
|
||||||
|
add_filter( 'site_transient_update_themes', 'headless_disable_theme_updates' );
|
||||||
|
function headless_disable_theme_updates( $transient ) {
|
||||||
|
if ( isset( $transient->response['headless'] ) ) {
|
||||||
|
unset( $transient->response['headless'] );
|
||||||
|
}
|
||||||
|
return $transient;
|
||||||
|
}
|
||||||
20
wp-content/mu-plugins/headless-home-url.php
Normal file
20
wp-content/mu-plugins/headless-home-url.php
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Customize home URL for headless WordPress
|
||||||
|
add_filter( 'home_url', 'headless_home_url', 10, 4 );
|
||||||
|
function headless_home_url( $url, $path, $orig_scheme, $blog_id ) {
|
||||||
|
// Exclude specific patterns from rewriting
|
||||||
|
$excluded_patterns = array(
|
||||||
|
'#/wp-json(/|$)#i', // WP REST API
|
||||||
|
'#\.(xsl|xml)$#i', // Sitemap and XSLT files
|
||||||
|
);
|
||||||
|
foreach ( $excluded_patterns as $pattern ) {
|
||||||
|
if ( preg_match( $pattern, $url ) ) {
|
||||||
|
return get_site_url( $blog_id, $path, $orig_scheme );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Rewrite URL protocol to match original home scheme
|
||||||
|
$scheme = wp_parse_url( get_option( 'home' ) )['scheme'] ?? 'https';
|
||||||
|
return preg_replace( '#^https:#i', "$scheme:", $url );
|
||||||
|
}
|
||||||
0
wp-content/plugins/.gitkeep
Normal file
0
wp-content/plugins/.gitkeep
Normal file
0
wp-content/themes/.gitkeep
Normal file
0
wp-content/themes/.gitkeep
Normal file
24
wp-content/themes/headless/.gitignore
vendored
Normal file
24
wp-content/themes/headless/.gitignore
vendored
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# Nuxt dev/build outputs
|
||||||
|
.output
|
||||||
|
.data
|
||||||
|
.nuxt
|
||||||
|
.nitro
|
||||||
|
.cache
|
||||||
|
dist
|
||||||
|
|
||||||
|
# Node dependencies
|
||||||
|
node_modules
|
||||||
|
|
||||||
|
# Logs
|
||||||
|
logs
|
||||||
|
*.log
|
||||||
|
|
||||||
|
# Misc
|
||||||
|
.DS_Store
|
||||||
|
.fleet
|
||||||
|
.idea
|
||||||
|
|
||||||
|
# Local env files
|
||||||
|
.env
|
||||||
|
.env.*
|
||||||
|
!.env.example
|
||||||
1
wp-content/themes/headless/.npmrc
Normal file
1
wp-content/themes/headless/.npmrc
Normal file
@@ -0,0 +1 @@
|
|||||||
|
shamefully-hoist=true
|
||||||
19
wp-content/themes/headless/.oxfmtrc.json
Normal file
19
wp-content/themes/headless/.oxfmtrc.json
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"$schema": "./node_modules/oxfmt/configuration_schema.json",
|
||||||
|
"experimentalSortImports": {
|
||||||
|
"groups": [
|
||||||
|
["side_effect"],
|
||||||
|
["builtin"],
|
||||||
|
["external", "type-external"],
|
||||||
|
["internal", "type-internal"],
|
||||||
|
["parent", "type-parent"],
|
||||||
|
["sibling", "type-sibling"],
|
||||||
|
["index", "type-index"]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"experimentalTailwindcss": {
|
||||||
|
"attributes": ["class"],
|
||||||
|
"functions": ["tv"],
|
||||||
|
"stylesheet": "./app/assets/css/_main.css"
|
||||||
|
}
|
||||||
|
}
|
||||||
22
wp-content/themes/headless/.oxlintrc.json
Normal file
22
wp-content/themes/headless/.oxlintrc.json
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"$schema": "./node_modules/oxlint/configuration_schema.json",
|
||||||
|
"categories": {},
|
||||||
|
"env": {
|
||||||
|
"builtin": true,
|
||||||
|
"browser": true,
|
||||||
|
"node": true
|
||||||
|
},
|
||||||
|
"globals": {},
|
||||||
|
"ignorePatterns": [],
|
||||||
|
"plugins": ["import", "vue"],
|
||||||
|
"rules": {
|
||||||
|
"vue/define-emits-declaration": ["error", "type-based"],
|
||||||
|
"vue/define-props-declaration": ["error", "type-based"],
|
||||||
|
"vue/require-typed-ref": "error"
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"vitest": {
|
||||||
|
"typecheck": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
3
wp-content/themes/headless/.vscode/extensions.json
vendored
Normal file
3
wp-content/themes/headless/.vscode/extensions.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"recommendations": ["oxc.oxc-vscode"]
|
||||||
|
}
|
||||||
25
wp-content/themes/headless/.vscode/launch.json
vendored
Normal file
25
wp-content/themes/headless/.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Nuxt server",
|
||||||
|
"type": "node",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "${workspaceFolder}/node_modules/nuxt/bin/nuxt.mjs",
|
||||||
|
"runtimeArgs": ["--inspect"],
|
||||||
|
"args": ["dev"],
|
||||||
|
"autoAttachChildProcesses": true,
|
||||||
|
"console": "integratedTerminal",
|
||||||
|
"skipFiles": ["<node_internals>/**"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Nuxt client",
|
||||||
|
"type": "chrome",
|
||||||
|
"request": "launch",
|
||||||
|
"sourceMaps": true,
|
||||||
|
"trace": false,
|
||||||
|
"url": "http://localhost:3000",
|
||||||
|
"userDataDir": "${env:HOME}/.vscode/chromium-profile"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
35
wp-content/themes/headless/.vscode/settings.json
vendored
Normal file
35
wp-content/themes/headless/.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"[css]": {
|
||||||
|
"editor.defaultFormatter": "oxc.oxc-vscode"
|
||||||
|
},
|
||||||
|
"[javascript]": {
|
||||||
|
"editor.defaultFormatter": "oxc.oxc-vscode"
|
||||||
|
},
|
||||||
|
"[json]": {
|
||||||
|
"editor.defaultFormatter": "oxc.oxc-vscode"
|
||||||
|
},
|
||||||
|
"[jsonc]": {
|
||||||
|
"editor.defaultFormatter": "oxc.oxc-vscode"
|
||||||
|
},
|
||||||
|
"[postcss]": {
|
||||||
|
"editor.defaultFormatter": "oxc.oxc-vscode"
|
||||||
|
},
|
||||||
|
"[scss]": {
|
||||||
|
"editor.defaultFormatter": "oxc.oxc-vscode"
|
||||||
|
},
|
||||||
|
"[typescript]": {
|
||||||
|
"editor.defaultFormatter": "oxc.oxc-vscode"
|
||||||
|
},
|
||||||
|
"[vue]": {
|
||||||
|
"editor.defaultFormatter": "oxc.oxc-vscode"
|
||||||
|
},
|
||||||
|
"editor.codeActionsOnSave": {
|
||||||
|
"source.fixAll": "always"
|
||||||
|
},
|
||||||
|
"editor.defaultFormatter": "oxc.oxc-vscode",
|
||||||
|
"editor.formatOnSave": true,
|
||||||
|
"editor.quickSuggestions": {
|
||||||
|
"strings": "on"
|
||||||
|
},
|
||||||
|
"eslint.enable": false
|
||||||
|
}
|
||||||
1
wp-content/themes/headless/CHANGELOG.md
Normal file
1
wp-content/themes/headless/CHANGELOG.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
# Changelog
|
||||||
75
wp-content/themes/headless/README.md
Normal file
75
wp-content/themes/headless/README.md
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
# Nuxt Minimal Starter
|
||||||
|
|
||||||
|
Look at the [Nuxt documentation](https://nuxt.com/docs/getting-started/introduction) to learn more.
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
Make sure to install dependencies:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# npm
|
||||||
|
npm install
|
||||||
|
|
||||||
|
# pnpm
|
||||||
|
pnpm install
|
||||||
|
|
||||||
|
# yarn
|
||||||
|
yarn install
|
||||||
|
|
||||||
|
# bun
|
||||||
|
bun install
|
||||||
|
```
|
||||||
|
|
||||||
|
## Development Server
|
||||||
|
|
||||||
|
Start the development server on `http://localhost:3000`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# npm
|
||||||
|
npm run dev
|
||||||
|
|
||||||
|
# pnpm
|
||||||
|
pnpm dev
|
||||||
|
|
||||||
|
# yarn
|
||||||
|
yarn dev
|
||||||
|
|
||||||
|
# bun
|
||||||
|
bun run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
## Production
|
||||||
|
|
||||||
|
Build the application for production:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# npm
|
||||||
|
npm run build
|
||||||
|
|
||||||
|
# pnpm
|
||||||
|
pnpm build
|
||||||
|
|
||||||
|
# yarn
|
||||||
|
yarn build
|
||||||
|
|
||||||
|
# bun
|
||||||
|
bun run build
|
||||||
|
```
|
||||||
|
|
||||||
|
Locally preview production build:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# npm
|
||||||
|
npm run preview
|
||||||
|
|
||||||
|
# pnpm
|
||||||
|
pnpm preview
|
||||||
|
|
||||||
|
# yarn
|
||||||
|
yarn preview
|
||||||
|
|
||||||
|
# bun
|
||||||
|
bun run preview
|
||||||
|
```
|
||||||
|
|
||||||
|
Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information.
|
||||||
8
wp-content/themes/headless/app/app.vue
Normal file
8
wp-content/themes/headless/app/app.vue
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<NuxtRouteAnnouncer />
|
||||||
|
<NuxtLayout>
|
||||||
|
<NuxtPage />
|
||||||
|
</NuxtLayout>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
0
wp-content/themes/headless/app/assets/css/_main.css
Normal file
0
wp-content/themes/headless/app/assets/css/_main.css
Normal file
5
wp-content/themes/headless/app/layouts/default.vue
Normal file
5
wp-content/themes/headless/app/layouts/default.vue
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<template>
|
||||||
|
<div id="layout-default">
|
||||||
|
<slot />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
3
wp-content/themes/headless/app/pages/[...uri].vue
Normal file
3
wp-content/themes/headless/app/pages/[...uri].vue
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<template>
|
||||||
|
<div id="page-node-from-uri">TODO: [...uri].vue</div>
|
||||||
|
</template>
|
||||||
0
wp-content/themes/headless/editor-style.css
Normal file
0
wp-content/themes/headless/editor-style.css
Normal file
14
wp-content/themes/headless/functions.php
Normal file
14
wp-content/themes/headless/functions.php
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Core
|
||||||
|
require_once __DIR__ . '/includes/core/theme-setup.php';
|
||||||
|
|
||||||
|
// Vendors
|
||||||
|
require_once __DIR__ . '/includes/vendors/acf.php';
|
||||||
|
require_once __DIR__ . '/includes/vendors/rankmath.php';
|
||||||
|
require_once __DIR__ . '/includes/vendors/tinymce.php';
|
||||||
|
require_once __DIR__ . '/includes/vendors/wpgraphql.php';
|
||||||
|
|
||||||
|
// WPGraphQL
|
||||||
|
require_once __DIR__ . '/includes/wpgraphql/media-focus-point.php';
|
||||||
|
require_once __DIR__ . '/includes/wpgraphql/term-connection.php';
|
||||||
27
wp-content/themes/headless/includes/core/theme-setup.php
Normal file
27
wp-content/themes/headless/includes/core/theme-setup.php
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Setup theme
|
||||||
|
add_action( 'after_setup_theme', 'headless_after_setup_theme' );
|
||||||
|
function headless_after_setup_theme() {
|
||||||
|
// Load textdomain
|
||||||
|
load_theme_textdomain( 'headless', get_theme_file_path( 'languages' ) );
|
||||||
|
|
||||||
|
// Theme features
|
||||||
|
add_theme_support( 'custom-logo' );
|
||||||
|
add_theme_support( 'editor-styles' );
|
||||||
|
remove_theme_support( 'core-block-patterns' );
|
||||||
|
|
||||||
|
// Register menus
|
||||||
|
register_nav_menu( 'main', __( "Main menu", 'headless' ) );
|
||||||
|
|
||||||
|
// Register sidebars
|
||||||
|
}
|
||||||
|
|
||||||
|
// Display theme version in admin footer
|
||||||
|
add_filter( 'update_footer', 'headless_update_footer', 100 );
|
||||||
|
function headless_update_footer() {
|
||||||
|
$package_json = json_decode( file_get_contents( get_theme_file_path( 'package.json' ) ), true );
|
||||||
|
$name = $package_json['name'] ?? 'headless';
|
||||||
|
$version = $package_json['version'] ?? '(unknown)';
|
||||||
|
return sprintf( '%s v%s', esc_html( $name ), esc_html( $version ) );
|
||||||
|
}
|
||||||
15
wp-content/themes/headless/includes/vendors/acf.php
vendored
Normal file
15
wp-content/themes/headless/includes/vendors/acf.php
vendored
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Disable ACF / ACFE modules
|
||||||
|
add_filter( 'acf/settings/enable_post_types', '__return_false' );
|
||||||
|
add_action( 'acf/init', 'headless_acf_init' );
|
||||||
|
function headless_acf_init() {
|
||||||
|
acf_update_setting( 'acfe/modules/block_types', false );
|
||||||
|
acf_update_setting( 'acfe/modules/categories', false );
|
||||||
|
acf_update_setting( 'acfe/modules/forms', false );
|
||||||
|
acf_update_setting( 'acfe/modules/options', false );
|
||||||
|
acf_update_setting( 'acfe/modules/options_pages', false );
|
||||||
|
acf_update_setting( 'acfe/modules/post_types', false );
|
||||||
|
acf_update_setting( 'acfe/modules/taxonomies', false );
|
||||||
|
acf_update_setting( 'acfe/modules/templates', false );
|
||||||
|
}
|
||||||
1
wp-content/themes/headless/includes/vendors/rankmath.php
vendored
Normal file
1
wp-content/themes/headless/includes/vendors/rankmath.php
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<?php
|
||||||
139
wp-content/themes/headless/includes/vendors/tinymce.php
vendored
Normal file
139
wp-content/themes/headless/includes/vendors/tinymce.php
vendored
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Enable formats (styleselect) in TinyMCE
|
||||||
|
add_filter( 'mce_buttons', 'headless_tinymce_styleselect' );
|
||||||
|
function headless_tinymce_styleselect( $buttons ) {
|
||||||
|
array_unshift( $buttons, 'styleselect' );
|
||||||
|
return $buttons;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Configure TinyMCE
|
||||||
|
add_filter( 'tiny_mce_before_init', 'headless_tiny_mce_before_init' );
|
||||||
|
function headless_tiny_mce_before_init( $settings ) {
|
||||||
|
// Reset TinyMCE editor CSS
|
||||||
|
if ( isset( $settings['content_css'] ) ) {
|
||||||
|
$content_css = explode( ',', $settings['content_css'] );
|
||||||
|
unset( $content_css[1] ); // wp-content.min.css
|
||||||
|
$settings['content_css'] = implode( ',', $content_css );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Format styles
|
||||||
|
$settings['style_formats'] = wp_json_encode(
|
||||||
|
array(
|
||||||
|
array(
|
||||||
|
'title' => "Caractères",
|
||||||
|
'items' => array(// Inline styles
|
||||||
|
array(
|
||||||
|
'title' => __( "Semi-bold", 'headless' ),
|
||||||
|
'inline' => 'span',
|
||||||
|
'classes' => 'font-semibold',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'title' => "Liens",
|
||||||
|
'items' => array(// Link styles
|
||||||
|
array(
|
||||||
|
'title' => "Lien (opacité)",
|
||||||
|
'selector' => 'a',
|
||||||
|
'classes' => 'link-opacity',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'title' => "Listes",
|
||||||
|
'items' => array(// List styles
|
||||||
|
array(
|
||||||
|
'title' => "Liste horizontale",
|
||||||
|
'selector' => 'ul,ol',
|
||||||
|
'classes' => 'list-horizontal',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'title' => "Paragraphes",
|
||||||
|
'items' => array(// Paragraph styles
|
||||||
|
array(
|
||||||
|
'title' => "Paragraphe vedette",
|
||||||
|
'block' => 'p',
|
||||||
|
'classes' => 'paragraph-lead',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'title' => "Titres",
|
||||||
|
'items' => array(// Heading styles
|
||||||
|
array(
|
||||||
|
'title' => "Titre 1",
|
||||||
|
'selector' => 'h1,h2,h3,h4',
|
||||||
|
'classes' => 'heading-1',
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'title' => "Titre 2",
|
||||||
|
'selector' => 'h1,h2,h3,h4',
|
||||||
|
'classes' => 'heading-2',
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'title' => "Titre 3",
|
||||||
|
'selector' => 'h1,h2,h3,h4',
|
||||||
|
'classes' => 'heading-3',
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'title' => "Titre 4",
|
||||||
|
'selector' => 'h1,h2,h3,h4',
|
||||||
|
'classes' => 'heading-4',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
// Block styles
|
||||||
|
$settings['block_formats'] = implode(
|
||||||
|
';',
|
||||||
|
array(
|
||||||
|
'Paragraph=p',
|
||||||
|
'Heading 1=h1',
|
||||||
|
'Heading 2=h2',
|
||||||
|
'Heading 3=h3',
|
||||||
|
'Heading 4=h4',
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
return $settings;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Override TinyMCE editor styles
|
||||||
|
add_filter( 'mce_css', 'headless_override_editor_styles' );
|
||||||
|
function headless_override_editor_styles() {
|
||||||
|
return get_stylesheet_directory_uri() . '/editor-style.css';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove default TinyMCE styles for all editors (WordPress & ACF)
|
||||||
|
add_action( 'admin_print_footer_scripts', 'headless_remove_tinymce_default_styles', 99 );
|
||||||
|
function headless_remove_tinymce_default_styles() {
|
||||||
|
?>
|
||||||
|
<script>
|
||||||
|
(function($) {
|
||||||
|
if (typeof tinymce !== 'undefined') {
|
||||||
|
tinymce.on('AddEditor', function({editor}) {
|
||||||
|
editor.on('init', function() {
|
||||||
|
$(editor.iframeElement).contents().find("link[href*='content.min.css']").remove();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})(jQuery);
|
||||||
|
</script>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
// Convert absolute URLs to relative in link query
|
||||||
|
add_filter( 'wp_link_query', 'headless_tinymce_relative_urls' );
|
||||||
|
function headless_tinymce_relative_urls( $results ) {
|
||||||
|
foreach ( $results as &$result ) {
|
||||||
|
if ( empty( $result['permalink'] ) ) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$result['permalink'] = str_replace( get_home_url(), '', $result['permalink'] );
|
||||||
|
}
|
||||||
|
return $results;
|
||||||
|
}
|
||||||
17
wp-content/themes/headless/includes/vendors/wpgraphql.php
vendored
Normal file
17
wp-content/themes/headless/includes/vendors/wpgraphql.php
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Default WPGraphQL settings
|
||||||
|
add_filter( 'graphql_get_setting_section_field_value', 'headless_wpgraphql_settings', 10, 5 );
|
||||||
|
function headless_wpgraphql_settings( $value, $default_value, $option_name, $section_fields, $section_name ) {
|
||||||
|
if ( $section_name === 'graphql_general_settings' ) {
|
||||||
|
switch ( $option_name ) {
|
||||||
|
case 'graphql_endpoint':
|
||||||
|
$value = 'graphql';
|
||||||
|
break;
|
||||||
|
case "public_introspection_enabled":
|
||||||
|
$value = "on";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $value;
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Expose 'bg_pos_desktop' post meta on MediaItem type in WPGraphQL
|
||||||
|
add_action( 'graphql_register_types', 'leblanc_graphql_register_media_focus_point' );
|
||||||
|
function leblanc_graphql_register_media_focus_point() {
|
||||||
|
register_graphql_field(
|
||||||
|
'MediaItem',
|
||||||
|
'objectPosition',
|
||||||
|
array(
|
||||||
|
'type' => 'String',
|
||||||
|
'description' => 'CSS object-position value from Media Focus Point plugin',
|
||||||
|
'resolve' => static function ( $media_item ) {
|
||||||
|
return get_post_meta( $media_item->databaseId, 'bg_pos_desktop', true );
|
||||||
|
},
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Override term connection query args
|
||||||
|
add_filter( 'graphql_term_object_connection_query_args', 'headless_graphql_term_object_connection_query_args', 10, 3 );
|
||||||
|
function headless_graphql_term_object_connection_query_args( $query_args, $source, $args ) {
|
||||||
|
// Sort by 'order' meta value instead of legacy 'term_order' field
|
||||||
|
if ( 'term_order' === $args['where']['orderby'] ?? false ) {
|
||||||
|
$query_args['meta_key'] = 'order';
|
||||||
|
$query_args['orderby'] = 'meta_value_num';
|
||||||
|
}
|
||||||
|
|
||||||
|
return $query_args;
|
||||||
|
}
|
||||||
5
wp-content/themes/headless/nuxt.config.ts
Normal file
5
wp-content/themes/headless/nuxt.config.ts
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
// https://nuxt.com/docs/api/configuration/nuxt-config
|
||||||
|
export default defineNuxtConfig({
|
||||||
|
compatibilityDate: "2026-03-18",
|
||||||
|
devtools: { enabled: true },
|
||||||
|
});
|
||||||
49
wp-content/themes/headless/package.json
Normal file
49
wp-content/themes/headless/package.json
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
{
|
||||||
|
"name": "@lewebsimple/headless",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"private": true,
|
||||||
|
"description": "Headless WordPress theme based on Nuxt.",
|
||||||
|
"type": "module",
|
||||||
|
"scripts": {
|
||||||
|
"build": "pnpm --sequential /build:.*/",
|
||||||
|
"build:nuxt": "nuxt build",
|
||||||
|
"dev": "nuxt dev",
|
||||||
|
"format": "oxfmt .",
|
||||||
|
"lint": "oxlint . --fix",
|
||||||
|
"preview": "nuxt preview",
|
||||||
|
"postinstall": "pnpm --sequential /postinstall:.*/",
|
||||||
|
"postinstall:nuxt": "nuxt prepare",
|
||||||
|
"release": "oxlint . && oxfmt --check . && nuxt typecheck && changelogen --noAuthors --release --push"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"nuxt": "^4.4.2",
|
||||||
|
"vue": "^3.5.30",
|
||||||
|
"vue-router": "^5.0.3"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"changelogen": "^0.6.2",
|
||||||
|
"oxfmt": "^0.41.0",
|
||||||
|
"oxlint": "^1.56.0",
|
||||||
|
"typescript": "^5.9.3",
|
||||||
|
"vue-tsc": "^3.2.6"
|
||||||
|
},
|
||||||
|
"pnpm": {
|
||||||
|
"overrides": {
|
||||||
|
"@tiptap/core": "3.14.0",
|
||||||
|
"@tiptap/pm": "3.14.0"
|
||||||
|
},
|
||||||
|
"onlyBuiltDependencies": [
|
||||||
|
"@parcel/watcher",
|
||||||
|
"esbuild",
|
||||||
|
"sharp",
|
||||||
|
"unrs-resolver",
|
||||||
|
"vue-demi",
|
||||||
|
"workerd"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"changelog": {
|
||||||
|
"types": {
|
||||||
|
"chore": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
7219
wp-content/themes/headless/pnpm-lock.yaml
generated
Normal file
7219
wp-content/themes/headless/pnpm-lock.yaml
generated
Normal file
File diff suppressed because it is too large
Load Diff
BIN
wp-content/themes/headless/public/favicon.ico
Normal file
BIN
wp-content/themes/headless/public/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.2 KiB |
2
wp-content/themes/headless/public/robots.txt
Normal file
2
wp-content/themes/headless/public/robots.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
User-Agent: *
|
||||||
|
Disallow:
|
||||||
8
wp-content/themes/headless/style.css
Normal file
8
wp-content/themes/headless/style.css
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
/*
|
||||||
|
Theme Name: Headless
|
||||||
|
Author: Pascal Martineau <pascal@lewebsimple.ca>
|
||||||
|
Author URI: https://websimple.com/
|
||||||
|
Description: Headless WordPress theme based on Nuxt.
|
||||||
|
Text Domain: headless
|
||||||
|
Template: kaliroots
|
||||||
|
*/
|
||||||
18
wp-content/themes/headless/tsconfig.json
Normal file
18
wp-content/themes/headless/tsconfig.json
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
// https://nuxt.com/docs/guide/concepts/typescript
|
||||||
|
"files": [],
|
||||||
|
"references": [
|
||||||
|
{
|
||||||
|
"path": "./.nuxt/tsconfig.app.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "./.nuxt/tsconfig.server.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "./.nuxt/tsconfig.shared.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "./.nuxt/tsconfig.node.json"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user