{"id":285986,"date":"2026-06-11T17:34:18","date_gmt":"2026-06-11T17:34:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/astrochart\/"},"modified":"2026-06-12T10:44:01","modified_gmt":"2026-06-12T10:44:01","slug":"astrochart","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/astrochart\/","author":13555458,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.2.7","stable_tag":"0.2.7","tested":"7.0","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"AstroChart","header_author":"Ctrino","header_description":"Calculate and display natal charts with AstroChart shortcodes.","assets_banners_color":"04162d","last_updated":"2026-06-12 10:44:01","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/ctrino.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":77,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","changelog"],"tags":{"0.2.6":{"tag":"0.2.6","author":"simopa","date":"2026-06-11 17:43:08"},"0.2.7":{"tag":"0.2.7","author":"simopa","date":"2026-06-12 10:44:01"}},"upgrade_notice":{"0.2.7":"<p>Major correctness pass: \u0394T bug fix (Moon was off by 8-13 arcmin on 1950-90 dates), Porphyry house cusps fix (was off by 120\u00b0), retrogrades work in Table mode, Vertex fixed, Regiomontanus\/Campanus now within 0.012\u00b0 of an independent reference. Range 1600-2200. Safe to upgrade.<\/p>","0.2.6":"<p>Author metadata refresh. No behavioural changes \u2014 safe to upgrade.<\/p>","0.2.5":"<p>Admin strings are better localized and the WordPress.org package excludes disallowed compressed data files.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3569226,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3569226,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3569320,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3569320,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.2.6","0.2.7"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Natal chart with SVG wheel and data tables","2":"Dark theme preset","3":"Visual configurator with live preview","4":"Ascendant shortcode with interactive form","5":"Engine selection panel with on-demand data download"}},"plugin_section":[],"plugin_tags":[8886,265405,8889,262985,8899],"plugin_category":[],"plugin_contributors":[266715],"plugin_business_model":[],"class_list":["post-285986","plugin","type-plugin","status-publish","hentry","plugin_tags-astrology","plugin_tags-birth-chart","plugin_tags-horoscope","plugin_tags-natal-chart","plugin_tags-zodiac","plugin_contributors-simopa","plugin_committers-simopa"],"banners":{"banner":"https:\/\/ps.w.org\/astrochart\/assets\/banner-772x250.png?rev=3569320","banner_2x":"https:\/\/ps.w.org\/astrochart\/assets\/banner-1544x500.png?rev=3569320","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/astrochart\/assets\/icon-128x128.png?rev=3569226","icon_2x":"https:\/\/ps.w.org\/astrochart\/assets\/icon-256x256.png?rev=3569226","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>AstroChart adds an interactive natal chart calculator and SVG wheel to any page via shortcode. The default calculation engine runs locally on your server. No API key, no recurring HTTP, no third-party SaaS. Two optional engines are available for higher precision or experimental NASA-source calculations, all documented under \"External services\" below.<\/p>\n\n<h4>Built for<\/h4>\n\n<ul>\n<li>Astrology consultants who deliver birth charts to clients and need a private, professional embed on their pro site<\/li>\n<li>Astrology schools and editorial portals that publish charts and want full visual control without a recurring per-chart cost<\/li>\n<li>Developers who want a clean shortcode, customizable engine, and an open source calculation library<\/li>\n<\/ul>\n\n<h4>What it does<\/h4>\n\n<p>Drop a shortcode on any page:<\/p>\n\n<pre><code>[astrochart_chart date=\"1990-05-16\" time=\"08:45\" timezone=\"Europe\/Rome\" lat=\"45.46\" lon=\"9.19\"]\n<\/code><\/pre>\n\n<p>The page renders an interactive SVG wheel, planet\/house\/aspect tables, and an optional input form for site visitors.<\/p>\n\n<h4>Calculation features<\/h4>\n\n<ul>\n<li>Three interchangeable engines: pure-PHP Core (default, always available), pre-computed Table (sub-arcsecond, optional one-time data download), experimental JPL Horizons (NASA real-time)<\/li>\n<li>7 house systems verified against an independent astronomical reference: Placidus, Koch, Regiomontanus, Campanus, Porphyry, Equal, Whole Sign<\/li>\n<li>13 bodies: Sun..Pluto plus Chiron, Mean Node, and Mean Lilith<\/li>\n<li>Natal chart, Ascendant-only, and Solar Return calculations<\/li>\n<\/ul>\n\n<h4>Display and customization<\/h4>\n\n<ul>\n<li>Interactive SVG wheel with zodiac bands, house lines, planet markers, aspect lines, and on-wheel filters<\/li>\n<li>Visual configurator with live preview, JSON import\/export, theme presets<\/li>\n<li>CSS override via shortcode for per-instance styling<\/li>\n<li>Custom orb values per aspect type via shortcode or optional form<\/li>\n<li>Stack or tabbed layout for result panels<\/li>\n<li>Planet, aspect, house\/cusp, legend, and calculation data panels<\/li>\n<\/ul>\n\n<h4>Developer integration<\/h4>\n\n<ul>\n<li>WordPress filters to customize chart output at any stage<\/li>\n<li>Open source calculation engine (BSD 3-clause): https:\/\/github.com\/simopa\/AstroPHP<\/li>\n<li>Configurable geocoder with Nominatim default (no key) and optional API-key providers<\/li>\n<\/ul>\n\n<h4>Languages<\/h4>\n\n<p>Italian, English, Spanish translations included.<\/p>\n\n<h4>Shortcodes<\/h4>\n\n<ul>\n<li>[astrochart_chart] - full natal chart with form, wheel, and data tables<\/li>\n<li>[astrochart_ascendant] - Ascendant-only calculation<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>AstroChart can work with the local Core calculation engine and manually supplied coordinates without sending data to external services. The following optional services may be used depending on site settings and user\/admin actions.<\/p>\n\n<h4>Geocoding providers<\/h4>\n\n<p>AstroChart resolves place names to latitude\/longitude through the selected geocoding provider. The plugin sends the place search text, optional country bias, and a plugin user agent to the selected geocoding provider. If the selected provider requires an API key, the API key is stored in the site's WordPress options and sent with each request to that selected provider. Birth dates, birth times, names, and full chart results are not sent to geocoding providers.<\/p>\n\n<p>Geocoding happens when a visitor submits a chart form with a place name and no coordinates, or when a shortcode supplies a place name without coordinates.<\/p>\n\n<p>Geocoding does not happen when latitude, longitude, and timezone are supplied directly in the shortcode or form. Geoapify, LocationIQ, Google Maps, and Mapbox are used only if an administrator selects that provider and enters the required API key.<\/p>\n\n<p>Supported geocoding services:<\/p>\n\n<ul>\n<li>Nominatim \/ OpenStreetMap - used for geocoding place names. Usage policy: https:\/\/operations.osmfoundation.org\/policies\/nominatim\/ Privacy policy: https:\/\/osmfoundation.org\/wiki\/Privacy_Policy<\/li>\n<li>Geoapify - optional geocoding provider. Terms: https:\/\/www.geoapify.com\/terms-and-conditions\/ Privacy policy: https:\/\/www.geoapify.com\/privacy-policy\/<\/li>\n<li>LocationIQ - optional geocoding provider. Terms: https:\/\/locationiq.com\/tos Privacy policy: https:\/\/locationiq.com\/privacy<\/li>\n<li>Google Maps Geocoding API - optional geocoding provider. Terms: https:\/\/cloud.google.com\/maps-platform\/terms Privacy policy: https:\/\/policies.google.com\/privacy<\/li>\n<li>Mapbox Geocoding API - optional geocoding provider. Terms: https:\/\/www.mapbox.com\/legal\/tos Privacy policy: https:\/\/www.mapbox.com\/legal\/privacy<\/li>\n<\/ul>\n\n<h4>GitHub Releases<\/h4>\n\n<p>If an administrator selects the Table engine and clicks the ephemeris download button, AstroChart downloads <code>planets.bin<\/code> and <code>moon.bin<\/code> from a GitHub Release of the AstroPHP project. This sends a standard HTTP request from the server to GitHub, including the server IP address and user agent. It does not send visitor birth data or chart data.<\/p>\n\n<p>Service provider: GitHub. Terms: https:\/\/docs.github.com\/site-policy\/github-terms\/github-terms-of-service Privacy statement: https:\/\/docs.github.com\/site-policy\/privacy-policies\/github-general-privacy-statement<\/p>\n\n<h4>NASA JPL Horizons<\/h4>\n\n<p>If an administrator selects the experimental JPL Horizons engine, AstroChart requests ephemeris vectors from NASA JPL Horizons during chart calculation. Requests include the requested body identifier and calculation time\/Julian date. They do not include names, email addresses, full form submissions, or rendered chart tables.<\/p>\n\n<p>Service provider: NASA\/JPL Horizons. API documentation: https:\/\/ssd.jpl.nasa.gov\/horizons\/ Privacy policy: https:\/\/www.nasa.gov\/privacy\/<\/p>\n\n<!--section=changelog-->\n<h4>0.2.7<\/h4>\n\n<ul>\n<li>Ephemeris data tables upgraded to v3.1 (ELP-2000 series). The Table engine now uses pre-computed binary tables derived from the Chapront-Touz\u00e9\/Chapront ELP-2000\/82 lunar theory (Meeus, <em>Astronomical Algorithms<\/em> 2nd ed., chapter 47) with the principal IAU 1980 nutation and Brown 2nd-order solar perturbation terms added to Mean Node and Mean Lilith. Precision vs reference astrology software is sub-arcsecond for all 13 bodies (Sun..Pluto + Chiron + Mean Node + Mean Lilith) on contemporary dates; at the far ends of the supported range (1600 and 2200) the Moon interpolation drifts to ~29 arcseconds. A 100\u00d7 improvement on Mean Lilith over v3.0 (from 7 arcmin down to 4 arcsec maximum difference).<\/li>\n<li>Date range extended from 1700-2100 to 1600-2200 (650 years, a 62% extension). Historical chart calculations and far-future transit projections are now supported within sub-arcsec precision on dates away from the edges.<\/li>\n<li>Fixed a major \u0394T (delta-T) calculation bug in the Core engine that affected every chart computed for a year outside 2005-2050. The previous formula produced \u0394T values up to 1500 seconds too negative for early-1900s dates, shifting the Moon by 8-13 arcminutes for common 1950-1990 birth dates and the Sun by ~70 arcseconds for 1950 dates. Replaced with the standard NASA GSFC piecewise polynomials (Espenak &amp; Meeus 2006), public-domain, smoothly covering -1999 to +3000.<\/li>\n<li>Table engine now reports planet speed in degrees\/day (computed via central-difference over \u00b11 hour). This restores retrograde detection (previously every planet was reported as direct in Table mode) and the applying\/separating classification of aspects.<\/li>\n<li>Fixed a long-standing Porphyry house-system bug: every intermediate cusp (2, 3, 5, 6, 8, 9, 11, 12) was shifted by exactly 120\u00b0 because the four ecliptic quadrants were paired to the wrong cusps. The bug predates 0.2.7 \u2014 anyone who used Porphyry on any earlier version had houses displaced by a third of the zodiac. Because Porphyry also seeds the Placidus solver and is the polar fallback for Koch, Regiomontanus and Campanus, the fix propagates beyond Porphyry itself.<\/li>\n<li>Regiomontanus and Campanus house systems rewritten with their canonical closed-form constructions. Validated against an independent reference oracle at 0.01\u00b0\/40 arcseconds across 15 reference locations from \u221235\u00b0 to +64\u00b0 latitude \u2014 for context, the previous implementations diverged by up to several degrees at mid latitudes.<\/li>\n<li>Vertex angle formula corrected \u2014 twice. The 0.2.6 implementation drifted by tens of degrees at high latitudes due to a tan\/cot mix-up with a compensating +180\u00b0 shift. The first rewrite this cycle silently returned the Antivertex (exactly 180\u00b0 off the reference). The shipped version is verified within 0.004\u00b0 of the reference oracle across high (60\u00b0N), mid (42\u00b0N) and southern (\u221235\u00b0) latitudes.<\/li>\n<li>Three built-in fixed stars (Spica, Regulus, Aldebaran) now drift with general precession (IAU 2006 rate, ~50.29 arcsec\/year) instead of being frozen at J2000.<\/li>\n<li>JPL Horizons provider settings page now displays an explicit privacy note covering what data is sent to ssd.jpl.nasa.gov.<\/li>\n<li>Data download URL changed from GitHub release <code>v1.0-data<\/code> to <code>v3.1-data<\/code>. Existing installs will automatically pick up the new tables on next download. The vendor bundled fallback is also updated.<\/li>\n<li>All public-domain sources: JPL DE440 (Sun..Pluto + Moon), NASA JPL Horizons (Chiron), Meeus\/Chapront ELP-2000\/82 + IERS Conventions 2010 (Mean Node, Mean Lilith), NASA GSFC piecewise polynomials (\u0394T).<\/li>\n<li>Regression net: the test suite now wires runtime end-to-end checks (v3.1 pipeline + post-\u0394T-fix Core engine on famous charts), an independent-oracle house-systems accuracy test (0.01\u00b0 threshold), and a distributable ZIP audit into <code>composer test<\/code>. Test count: 452 (was 428).<\/li>\n<\/ul>\n\n<h4>0.2.6<\/h4>\n\n<ul>\n<li>Updated plugin author metadata to \"Ctrino\" with author URL https:\/\/ctrino.com. No functional changes \u2014 the plugin's behavior, features, and existing settings are unchanged. The new author info simply links the plugin to its maintainer's homepage so users can discover related plugins and project notes.<\/li>\n<\/ul>\n\n<h4>0.2.5<\/h4>\n\n<ul>\n<li>Improved admin internationalization for engine, geocoder, ephemeris download, and visual configuration pages.<\/li>\n<li>Updated WordPress.org packaging to exclude compressed data files and disallowed bundled data directories.<\/li>\n<li>Expanded external service disclosure for optional geocoding providers, GitHub downloads, and NASA JPL Horizons.<\/li>\n<li>Fixed external service Terms links that returned 404 during manual review.<\/li>\n<li>Bumped plugin metadata for the 0.2.5 submission package.<\/li>\n<\/ul>","raw_excerpt":"Natal chart calculator for WordPress that runs entirely on your server, with an open source astronomical engine and zero external API dependency.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/285986","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=285986"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/simopa"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=285986"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=285986"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=285986"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=285986"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=285986"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=285986"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}