| 开发者 | astrowayteam |
|---|---|
| 更新时间 | 2026年10月4日 23:04 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.1 |
| 版权: | MIT |
| 版权网址: | 版权信息 |
[astroway_daily_horoscope sign="leo"][astroway_moon_phase]. A birth chart takes a date, a time and a place:
[astroway_natal date="1990-05-15" time="14:30" lat="50.45" lon="30.52" tz="Europe/Kyiv"]
AstroWay → Shortcodes in your admin lists every shortcode with its parameters and a copy button, next to a city search that fills in coordinates and timezone for you. Every one of them is a Gutenberg block as well: type /astroway in the editor and the preview shows the finished card, not a placeholder.
What needs a key
[astroway_mercury_retrograde] prints yes or no, the dates of the retrograde it is in or heading for, and how many days are left. [astroway_retrogrades] does the same for all eight planets that station, as one table. [astroway_moon_voc] lists the void windows with their last aspect and next sign. [astroway_planetary_hours latitude="50.45" longitude="30.52"] prints the twenty-four hours of the day with the one you are in marked. Station and window times are printed on your site's clock, not in UTC, which matters more often than it sounds: Saturn turns direct at 23:31 UTC on 10 December, and that is the 11th anywhere east of Greenwich. They run on the site's own key, which the plugin asks for by itself.
Calculators for your visitors
Leave the date out and a card asks for it. [astroway_natal], [astroway_moon_sign] and [astroway_rising_sign] with no birth date show a short form, and [astroway_synastry] with no dates asks for two people: date, time, and the city, found by name with its coordinates and time zone. The answer is drawn on the same page by your server, so the form works without JavaScript. Without a birth time the natal chart leaves out houses and the Ascendant rather than guessing noon, the moon sign names both signs on a day the Moon changed sign, and the rising sign says plainly that it needs the time. The plugin keeps nothing a visitor types: the answer is not cached and the page is sent no-store and noindex.
What a natal chart means
Under the chart, each planet in its sign has its reading: edited texts from AstroWay's own astrologer, in the site's language, one row per planet. Planet in house and the aspects follow as they are written, and a row simply does not appear until its text exists.
680 more, for when you need them
Eighteen widgets are hand-built and need no key. Behind them the plugin also carries a shortcode and a block for 680 more endpoints: Vedic charts and dashas, four kinds of numerology, three tarot decks, BaZi, Zi Wei Dou Shu, Human Design, geomancy, runes, Mayan calendars, astrocartography, horary, and the Hellenistic traditions. AstroWay → Shortcodes lists them by family with a copy button on each. They are generated from the API specification rather than written one by one, so when the API gains an endpoint the plugin gains a shortcode. These need an API key; a free key comes with 10,000 credits a month, and most calls cost 10 of them.
The year, two signs, and the Chinese animal
Three cards read the signs themselves. The yearly horoscope, [astroway_yearly_horoscope sign="leo"], prints the year ahead. [astroway_zodiac_compatibility sign1="leo" sign2="aquarius"] prints how two signs read together, as prose rather than as a percentage: the API returns no score, and a number with no calculation behind it is worse than no number. [astroway_chinese_zodiac date="1990-05-15"] prints the animal of a birth year with its element, polarity and pillar.
Two charts, read against each other
The synastry card, [astroway_synastry name_a="Olena" date_a="1990-05-15" time_a="14:30" name_b="Marc" date_b="1988-11-02" time_b="09:15"], prints the compatibility score in a ring with the word the API puts on it, the Sun, Moon and Ascendant of each person, and both charts on one bi-wheel: the first inside with its houses, the second on the outer ring, and the aspects between them as lines. Every aspect names whose planet is whose, because "Moon conjunct Mercury" says nothing until you know whose Moon, and says in a line what that kind of contact does between two people. The six closest are listed and the whole grid, points included, is one tab away. A birth time you do not have is declared unknown rather than guessed at noon, which would move the Moon by up to six degrees and invent an aspect that is not there. The names never leave your server. No key needed; one of these counts as five requests of the hourly allowance, because it is the grid between the two charts and each chart on its own, and it is cached for a month.
Add transits="today" to a natal chart, or a date such as transits="2026-10-01", and it gains a Transits tab: the birth chart inside, the sky of that day on the outer ring, and the transits within three degrees listed tightest first.
Tabs, without the JavaScript
Put several AstroWay blocks inside an Astrology Section and set its layout to Tabs. Your server still renders every card, one after another, and a 3 KB script folds that stack into a proper tab strip with arrow-key navigation. Turn JavaScript off and the page is the stack it always was, with every word still in the HTML: nothing is fetched in the browser and nothing is hidden from a crawler. Tab labels drop the words they all share, so four horoscopes for one sign read "today", "the week", "the month" and "the year".
An email when the sky does something
Turn on daily transit alerts under AstroWay → Settings and your site emails you on the days a planet stations or the Moon goes void of course, with the current retrogrades and the moon phase for context. Nothing is sent on the quiet days, which is the point: a message every morning is a newsletter, and this is an alert. Pick the hour on your own clock and who it goes to. Part of the Pro plan.
One sign for a whole section
The Astrology Section block sets a zodiac sign once and every AstroWay block inside it follows: four horoscopes on a sign's landing page, and the sign is written in one place rather than four. A block that has its own sign keeps it.
What still loads in a frame
Widgets that have no page-side template yet, and any widget whose data cannot be fetched at that moment, fall back to an embedded frame loaded by the visitor's own browser (30 requests/hour per visitor IP). Eighteen widgets need no key of any kind, and that is where most sites stop. The generated shortcodes behind them need one: a free key gives 10,000 credits a month, most calls cost 10, and paid plans raise the limits further. The daily transit alert email is the only thing in the plugin that asks for a paid plan.
Under the hood the widgets are powered by api.astroway.info, with 700+ endpoints covering Western, Vedic, Hellenistic, Chinese and Mayan astrology, Tarot (Rider-Waite, Marseille, Lenormand), Numerology (Pythagorean, Chaldean, Kabbalistic, Tamil), Human Design and AI horoscopes.
Try it before you install
The same calculations run as free web tools, with no install and no account: a birth chart and a synastry comparison. Useful for seeing what a widget will output before you put a shortcode on a page.
/wp-content/plugins/, then activate it through the Plugins menu.[astroway_daily_horoscope sign="leo"], or type /astroway in the block editor.Yes. The plugin is free and open source, and the core widgets work with no account, no API key, and no credit card. The fifteen widgets your server renders into the page draw on the site's own key, 300 readings an hour, which the plugin asks for by itself (a synastry, being two charts and the grid between them, counts as three of those), and caching keeps normal traffic far below it. Widgets that still load in a frame use the visitor's own allowance of 30 requests an hour per IP. A free API key (still no card) gives you 10,000 credits a month against api.astroway.info, and most calls cost 10 credits; that is what the 680 generated shortcodes spend. Paid plans raise that further. The daily transit alert email is the only feature here that asks for a paid plan.
Drop a shortcode into any page or post, for example [astroway_natal date="1990-05-15" time="14:30" lat="50.45" lon="30.52"] for a natal (birth) chart, or [astroway_daily_horoscope sign="leo"] for a daily horoscope. Each of them is a Gutenberg block as well: type /astroway in the editor and pick one. AstroWay → Shortcodes lists every shortcode with its parameters, a copy button and a search box.
Yes. The same calculations run as free web tools with no install and no account: a birth chart. Handy for checking the output before you add a shortcode, or for a one-off chart you do not need on the site.
No. The plugin works without a key. On first use it asks api.astroway.info for a key of the site's own, proving it owns its address, and page-rendered widgets run on that: 300 readings an hour. Until it has one, or if your host blocks the check, they run on the anonymous per-site allowance of 300 requests an hour, and widgets that fall back to a frame run on the visitor's own 30 requests an hour per IP, which is enough for an ordinary site. If you do save a key, your server offers it when it fetches a widget, so those calls are counted against your plan instead of the shared anonymous allowance. Frames never carry it: that request is made by the visitor's browser. Get a free key at api.astroway.info.
AstroWay → Getting started → "Connect your AstroWay account". You sign in on api.astroway.info, pick one of your keys or create one for this site, and land back on the same page with the key saved. There is nothing to copy. The button shows once the site has its own site key; until then, or if you prefer, paste a key into the field below it. To disconnect, remove the key on the same page: the plugin goes back to asking for a site key of its own.
The fifteen page-rendered widgets, yes. Your server fetches the text and prints it into the page before the browser ever sees it, so a crawler reads it as ordinary page content and it counts toward the page. Widgets that fall back to an embedded frame do not: a frame is a separate document at another address, and a search engine credits what it finds there to that document, not to your page. AstroWay → Settings → Render mode shows which mode is in use, and you can force frames everywhere if you prefer the old behaviour.
Birth data (date, time, city, coordinates) for chart calculation. No data is stored on your site beyond standard WP caching.
Yes for the free anonymous tier. Paid API keys are bound to a single domain by default; you can change the bound domain self-service from the API dashboard at api.astroway.info/dashboard.
No personal data is stored on api.astroway.info. Birth data (date, time, city, lat/lon) is processed in-memory for chart calculation and the result is returned. The plugin caches results locally on your WordPress site (WP transients) to reduce repeat API calls; the cache contains chart output only, no PII beyond what was submitted via shortcode arguments.
For plugin issues: file an issue at https://github.com/astroway/astroway-wp-plugin/issues. For API or billing questions: contact support via your dashboard at api.astroway.info/dashboard.
theme="dark" still gives the dark version.lang. Before, they answered in Ukrainian on sites in other languages.tz was calculated in UTC. It now uses the timezone of the place; the moon sign, rising sign and bodygraph cards do the same.astroway_load_styles filter.define( 'ASTROWAY_API_KEY', '...' );.name_a and name_b head the two columns. "Moon conjunct Mercury" says nothing until you know whose Moon. The names stay on your server; the API is not told them.aspects="12" shows more rows, up to twenty. Six by default, which is what the frame showed. The whole grid, points included, is behind a click either way.[astroway_yearly_horoscope sign="leo"], the year ahead for one sign.[astroway_zodiac_compatibility sign1="leo" sign2="aquarius"], how two signs read together. Prose rather than a percentage: the API returns no score, and a number with no calculation behind it is worse than no number.[astroway_chinese_zodiac date="1990-05-15"], the animal of a birth year with its element, polarity and pillar.[astroway_mercury_retrograde] answers yes or no with the dates of the retrograde it is in or heading for, and a countdown. [astroway_retrograde planet="saturn"] does the same for any of the eight planets that station.[astroway_retrogrades] puts all eight in one table, with the ones running backwards marked.[astroway_moon_voc] says whether the Moon is void of course right now and lists the windows around it, each with its last aspect and the sign the Moon enters next.[astroway_planetary_hours latitude="50.45" longitude="30.52"] prints the twenty-four planetary hours of the day with the hour you are in marked.[astroway_moon_voc] and [astroway_planetary_hours] existed as generated shortcodes in 1.2.0 and printed a generic table. Same names, same attributes, purpose-built cards.[astroway_natal] accepts theme, which was previously reachable on other widgets but not this one. The wheel is an image drawn by the API and cannot read the page it lands on, so a dark wheel could end up inside a light card with no way to say otherwise. Values are dark (unchanged default), light and console.lang="uk" on an English site come out Ukrainian throughout; a translation the plugin carries covers anything the API has not translated, including chart placements and answers cached before this release. Tarot card names and the planet's theme words are open-ended lists and remain English until the API translates them.lng and the timezone as a numeric UTC offset. The api had been receiving longitude 0 and UTC, so house cusps and the Ascendant were computed for the wrong location/time, charts are now correct. Existing blocks need no changes; just upgrade.astroway-elementor addon plugin (planned ~Aug 2026) will provide advanced controls + animations.[astroway_fortune_cookie] shows a daily AI-generated cosmic quote via /v1/embed/fortune-cookie. Anonymous-accessible, sign-aware (optional sign param).[astroway_today_in_sky] accepts show_planetary_hour (default 0) + lat, lon, tz parameters. When enabled, the widget pulls today's planetary hour mapping for the supplied location.[astroway_today_in_sky] accepts show_retrograde parameter (default 1), toggles the Mercury retrograde indicator section. SEO-friendly viral content for retrograde periods.[astroway_today_in_sky] accepts show_signs parameter (default 1): toggles the Sun/Moon zodiac positions block. New sanitize_bool_flag() helper added as public static for addon reuse.[astroway_today_in_sky] renders the day's celestial overview via /v1/embed/today-in-sky. Anonymous-accessible (IP-rate-limited iframe).Tier::matrix() so addon-registered features appear automatically.astroway_* shortcode is now wrapped with Tier::can( $feature ). Locked shortcodes render an inline "Pro feature" CTA. Behavior matches v0.7.2 block-side gating - v1 shortcodes remain anonymous-accessible.Tier::render_upgrade_cta( $feature ) returns a styled CTA panel with feature label + upgrade button linking to api.astroway.info/dashboard/upgrade. Filterable via astroway_upgrade_cta_html for theme/addon customization.astroway_* shortcode is now wrapped with Tier::can( $feature ). Locked shortcodes render an inline "Pro feature" CTA. Behavior matches v0.7.2 block-side gating, v1 shortcodes remain anonymous-accessible.Tier::can( $feature ). Locked blocks render an inline "Pro feature" CTA instead of the widget. All v1 blocks remain accessible to anonymous users (matrix default); guards activate for v1.x+ Pro blocks.Tier::can( string $feature ): bool checks whether current tier can access a feature.Tier::matrix(): array returns feature → allowed tiers map, filterable via astroway_tier_matrix so addons can declare their own features.AstroWay\WPPlugin\Tier with Tier::current() resolving the user's plan from cached /v1/auth/keys/me response (30 min TTL). Returns anonymous/free/indie/starter/pro/business/internal.docs/addon-development.md documents the v0.6.x Addon Hooks API + AddonAPI reference + minimal working example.docs/example-addon/ shows shortcode registration + tier check + widget declaration.AstroWay\WPPlugin\AddonAPI: BC-locked stable surface for addon developers. Methods: register_widget(), current_tier(), api_base(), has_key(), cache_key(). Internal classes (RendererDecisions, ApiClient, Cache, Admin) remain unstable.astroway_widgets lets addons append entries to the widget registry without touching core. Useful for new shortcodes/blocks that map to api /v1/embed/* endpoints.astroway_register_blocks fires at end of Blocks::register_assets_and_blocks(). Addons hook here to call register_block_type() for their own astroway/* Gutenberg blocks.astroway_register_shortcodes fires at end of Shortcodes::register(). Addons hook here to call add_shortcode() for their own astroway_* shortcodes.astroway_init fires early in plugin boot, signalling addons that core classes are loaded and they can hook into upcoming registration actions.Cache-Control: no-cache + Pragma: no-cache headers, ensuring fresh response from astroway.info even if a transit cache sits between WP and the server.update.json.YahnisElsts/plugin-update-checker v5.6 library at includes/lib/plugin-update-checker/, autoloaded via load-v5p6.php. Foundation for v0.5.3 Channel B update hook.download_url field for paid tiers.lang attribute on all 5 shortcodes (e.g. [astroway_natal date="..." lang="ru"]), 21 api-supported localeslang= render in site default exactly as before