{"id":265833,"date":"2025-12-10T14:25:31","date_gmt":"2025-12-10T14:25:31","guid":{"rendered":"https:\/\/es.wordpress.org\/plugins\/bsk-recordar\/"},"modified":"2026-01-31T16:00:53","modified_gmt":"2026-01-31T16:00:53","slug":"recordar-for-bluesky","status":"publish","type":"plugin","link":"https:\/\/pan.wordpress.org\/plugins\/recordar-for-bluesky\/","author":13615078,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.2.2","stable_tag":"2.2.2","tested":"6.9.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Recordar for Bluesky & Mastodon","header_author":"JRMora","header_description":"Basic plugin to connect WordPress with Bluesky and automate archive\/ephemeris posts.","assets_banners_color":"e7e5e3","last_updated":"2026-01-31 16:00:53","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/jrmora.com","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":348,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.8.1":{"tag":"1.8.1","author":"jrmora","date":"2025-12-13 13:00:20"},"1.9.0":{"tag":"1.9.0","author":"jrmora","date":"2025-12-13 13:08:12"},"2.0.0":{"tag":"2.0.0","author":"jrmora","date":"2025-12-14 09:39:38"},"2.1.0":{"tag":"2.1.0","author":"jrmora","date":"2025-12-15 04:03:21"},"2.2.0":{"tag":"2.2.0","author":"jrmora","date":"2025-12-15 12:53:28"},"2.2.1":{"tag":"2.2.1","author":"jrmora","date":"2025-12-17 11:12:07"},"2.2.2":{"tag":"2.2.2","author":"jrmora","date":"2026-01-31 16:00:53"}},"upgrade_notice":{"2.2.2":"<p>Minor fix: Removed &quot;New Blog Post!&quot; prefix from automated posts for cleaner formatting.Tnx @@artblackman<\/p>","2.2.1":"<p>Minor Maintenance Release: Fixed List Builder column alignment, improved mobile scrolling, and updated translation strings for logs and reports.<\/p>","2.2.0":"<p>UX Update: Now you can see matching post status (found\/empty) directly in your Active Schedule list after running a simulation.<\/p>","2.1.0":"<p>Big Update! Now with full <strong>Mastodon<\/strong> support.\nYou can configure your instance and token to cross-post your ephemeris and new posts to the Fediverse.<\/p>","2.0.0":"<p>Major Feature: Added support for scheduling by MONTHS (e.g., 6 months ago) in addition to years.\nEnjoy more content possibilities!<\/p>","1.9.0":"<p>Major Update: Replaced manual time offsets with Automatic Timezone Synchronization. Added Data Persistence protection.\nPlease check your schedule after updating.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3419627,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3419627,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3419627,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3419627,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.8.1","1.9.0","2.0.0","2.1.0","2.2.0","2.2.1","2.2.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3419072,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3416499,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3416499,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3416499,"resolution":"4","location":"assets","locale":""}},"screenshots":{"1":"Main configuration view with separate cards for Bluesky and Mastodon.","2":"The \"Lists Laboratory\" and \"Saved Lists\" modules for managing presets.","3":"Diagnostic section with CRON status and testing tools."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1445,223781,4567,139106,86],"plugin_category":[59],"plugin_contributors":[252048],"plugin_business_model":[],"class_list":["post-265833","plugin","type-plugin","status-publish","hentry","plugin_tags-archive","plugin_tags-bluesky","plugin_tags-cron","plugin_tags-mastodon","plugin_tags-post","plugin_category-utilities-and-tools","plugin_contributors-jrmora","plugin_committers-jrmora"],"banners":{"banner":"https:\/\/ps.w.org\/recordar-for-bluesky\/assets\/banner-772x250.png?rev=3419627","banner_2x":"https:\/\/ps.w.org\/recordar-for-bluesky\/assets\/banner-1544x500.png?rev=3419627","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/recordar-for-bluesky\/assets\/icon-128x128.png?rev=3419627","icon_2x":"https:\/\/ps.w.org\/recordar-for-bluesky\/assets\/icon-256x256.png?rev=3419627","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/recordar-for-bluesky\/assets\/screenshot-1.png?rev=3419072","caption":"Main configuration view with separate cards for Bluesky and Mastodon."},{"src":"https:\/\/ps.w.org\/recordar-for-bluesky\/assets\/screenshot-2.png?rev=3416499","caption":"The \"Lists Laboratory\" and \"Saved Lists\" modules for managing presets."},{"src":"https:\/\/ps.w.org\/recordar-for-bluesky\/assets\/screenshot-3.png?rev=3416499","caption":"Diagnostic section with CRON status and testing tools."},{"src":"https:\/\/ps.w.org\/recordar-for-bluesky\/assets\/screenshot-4.png?rev=3416499","caption":""}],"raw_content":"<!--section=description-->\n<p>Recordar for Bluesky &amp; Mastodon is a plugin designed to automate the publication of archive content (ephemeris\/on this day) to <strong>Bluesky<\/strong> and <strong>Mastodon<\/strong>.\nIt integrates with the WordPress CRON system to:<\/p>\n\n<ul>\n<li><strong>Dual Publishing:<\/strong> Connect both Bluesky and Mastodon simultaneously.<\/li>\n<li><strong>Smart Scheduling:<\/strong> Automatically publish old posts (\"On a day like today, N years\/months ago\") at user-defined times.<\/li>\n<li><strong>Full Multilanguage Support:<\/strong> Detects and allows filtering posts by language (e.g., 'es', 'en', 'de') if using plugins like Polylang or WPML.<\/li>\n<li><strong>Immediate Publication of New Posts:<\/strong> Optionally, send a post to your networks immediately upon publication in WordPress.<\/li>\n<li><strong>Editorial Control:<\/strong> Exclude specific posts (by ID) to prevent automatic publication.<\/li>\n<li><strong>Link Handling (Embeds):<\/strong> Generates the link embed with image, title, and excerpt. Supports native image uploading for both networks.<\/li>\n<li><strong>Diagnostic Tools:<\/strong> Includes connection tests, Archive query tests, and CRON status\/reset tools.<\/li>\n<li><strong>Granular Control:<\/strong> Pause the entire system globally, or enable\/disable each social network individually.<\/li>\n<li><strong>Lists Laboratory:<\/strong> Create and save draft schedules offline before applying them.<\/li>\n<\/ul>\n\n<p><strong>Requirements:<\/strong>\n* A Bluesky account (Handle + App Password).\n* A Mastodon account (Instance URL + Access Token).<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>recordar-for-bluesky<\/code> folder to your <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>Go to the new <strong>Recordar for Bluesky<\/strong> menu entry in your WordPress admin.<\/li>\n<li>Enter your credentials for Bluesky and\/or Mastodon.<\/li>\n<li>Define the schedules and age of the posts you want to publish automatically.<\/li>\n<li>Make sure to save changes to schedule the CRON tasks!<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20get%20a%20mastodon%20access%20token%3F\"><h3>How do I get a Mastodon Access Token?<\/h3><\/dt>\n<dd><p>Go to your Mastodon instance settings (usually under <strong>Preferences &gt; Development<\/strong>).\nClick \"New Application\", give it a name (e.g., \"WordPress\"), select the permissions <strong>read<\/strong> and <strong>write<\/strong>, and save.\nThen click on the application name to reveal and copy the \"Access Token\".<\/p><\/dd>\n<dt id=\"what%20is%20a%20bluesky%20app%20password%3F\"><h3>What is a Bluesky App Password?<\/h3><\/dt>\n<dd><p>It is a password generated within your Bluesky account settings used specifically for third-party apps (like this plugin) to post on your behalf.<\/p><\/dd>\n<dt id=\"how%20does%20time%20synchronization%20work%3F\"><h3>How does time synchronization work?<\/h3><\/dt>\n<dd><p>The plugin automatically detects your WordPress Timezone settings (Settings &gt; General).\nYou no longer need to calculate offsets manually. The CRON will fire exactly at the local time you configure.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20a%20post%20has%20an%20excluded%20id%3F\"><h3>What happens if a post has an excluded ID?<\/h3><\/dt>\n<dd><p>If a post is in the excluded IDs list, the plugin will never automatically publish it, neither as an ephemeris nor immediately as a new post.<\/p><\/dd>\n<dt id=\"will%20i%20lose%20my%20lists%20if%20i%20uninstall%20the%20plugin%3F\"><h3>Will I lose my lists if I uninstall the plugin?<\/h3><\/dt>\n<dd><p>By default, NO.\nSince version 1.9.0, data persistence is enabled by default to protect your lists.\nYou can change this behavior in the \"Uninstallation Options\" section of the settings if you want a complete cleanup upon uninstallation.<\/p><\/dd>\n<dt id=\"what%20do%20the%20status%20icons%20in%20the%20schedule%20list%20mean%3F\"><h3>What do the status icons in the schedule list mean?<\/h3><\/dt>\n<dd><p>After running a \"Simulate Search\" in the Testing Zone, the Active Schedule table updates to show results at a glance.\nA green checkmark (\u2705) indicates that content was found for that period.\nA grey dash (\u2796) indicates no matching post was found for today.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.2.2<\/h4>\n\n<ul>\n<li>Minor fix: Removed \"New Blog Post!\" prefix from automated posts for cleaner formatting.<\/li>\n<\/ul>\n\n<h4>2.2.1<\/h4>\n\n<ul>\n<li><strong>FIX:<\/strong> <strong>UI Layout.<\/strong> Fixed visual misalignment in the \"List Builder\" (Drafts) table columns.<\/li>\n<li><strong>UX:<\/strong> <strong>Mobile Improvements.<\/strong> Added gutters to the dashboard to prevent \"scroll traps\" when managing long lists on mobile devices.<\/li>\n<li><strong>I18N:<\/strong> <strong>Translation Ready.<\/strong> Search reports and Cron logs are now fully translatable (using proper placeholders).<\/li>\n<\/ul>\n\n<h4>2.2.0<\/h4>\n\n<ul>\n<li><strong>NEW:<\/strong> <strong>Visual Status Indicators.<\/strong> Added a new status column in the Active Schedule table.<\/li>\n<li><strong>UX:<\/strong> <strong>In-situ Feedback.<\/strong> When running \"Simulate Search\", the table now displays a green checkmark (\u2705) for found posts and a grey dash (\u2796) for empty slots, allowing for quick status checks without scrolling.<\/li>\n<li><strong>IMPROVEMENT:<\/strong> <strong>Tooltips.<\/strong> Added native WordPress tooltips to status icons for better clarity.<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li><strong>NEW:<\/strong> <strong>Mastodon Support!<\/strong> Now you can connect your Mastodon account (Instance + Token).<\/li>\n<li><strong>NEW:<\/strong> <strong>Multi-Network Logic.<\/strong> Publish to Bluesky, Mastodon, or both simultaneously.<\/li>\n<li><strong>NEW:<\/strong> <strong>Individual Toggles.<\/strong> Pause or activate each social network independently without stopping the global system.<\/li>\n<li><strong>UX:<\/strong> Redesigned credentials interface with separate cards for each network.<\/li>\n<li><strong>IMPROVEMENT:<\/strong> <strong>Rich Text for Mastodon.<\/strong> Automatically appends the post excerpt to the message body when uploading images to ensure context is preserved (since Mastodon hides link cards when media is attached).<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li><strong>NEW:<\/strong> <strong>Month-based Scheduling.<\/strong> Now you can schedule ephemeris for \"1 month ago\", \"3 months ago\", etc., expanding the possibilities beyond just years.<\/li>\n<li><strong>IMPROVEMENT:<\/strong> <strong>Unified Selectors.<\/strong> The schedule dropdowns now handle and display both months and years intelligently.<\/li>\n<li><strong>IMPROVEMENT:<\/strong> <strong>Translation Logic.<\/strong> Implemented <code>_n()<\/code> function to ensure accurate pluralization of time periods in all languages (e.g., \"1 year\" vs \"5 years\").<\/li>\n<li><strong>LOGIC:<\/strong> <strong>Robust Date Calculation.<\/strong> Added specific logic to handle month subtraction safely (handling edge cases like day 31 automatically).<\/li>\n<\/ul>\n\n<h4>1.9.0<\/h4>\n\n<ul>\n<li><strong>NEW:<\/strong> <strong>Automatic Timezone Synchronization.<\/strong> Removed manual offset selector.\nThe plugin now intelligently uses the WordPress \"Settings &gt; General\" timezone configuration.<\/li>\n<li><strong>NEW:<\/strong> <strong>Data Persistence Option.<\/strong> Added a \"Danger Zone\" setting to choose whether to keep lists\/settings upon uninstallation.<\/li>\n<li><strong>IMPROVEMENT:<\/strong> <strong>Reforged CRON Logic.<\/strong> Completely rewrote the scheduling function using DateTimeZone.<\/li>\n<li><strong>FIX:<\/strong> <strong>Server Compatibility.<\/strong> Added fallback for servers missing mbstring extension and hardened time parsing to prevent fatal errors.<\/li>\n<li><strong>IMPROVEMENT:<\/strong> <strong>Enhanced Logging.<\/strong> The status log now explicitly displays Local Blog Time vs UTC.<\/li>\n<\/ul>\n\n<h4>1.8.1<\/h4>\n\n<ul>\n<li><strong>UX:<\/strong> Added an important safety warning to the \"Force Publish Now\" tool.\nIt alerts the user that this action publishes all listed posts simultaneously to prevent accidental flooding.<\/li>\n<\/ul>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li><strong>NEW:<\/strong> <strong>Global Pause<\/strong> system. Added a switch to temporarily stop all automatic activity without losing settings.<\/li>\n<li><strong>NEW:<\/strong> <strong>Lists Laboratory (Drafts)<\/strong>. New dedicated tool to create, edit, and save list drafts \"offline\" without affecting the active schedule.<\/li>\n<li><strong>IMPROVEMENT:<\/strong> <strong>Modular Design (Dashboard)<\/strong>. Complete UI overhaul using a card and grid system for better usability.<\/li>\n<li><strong>IMPROVEMENT:<\/strong> <strong>Search Persistence<\/strong>. Archive test results now remain on screen after reload until manually closed.<\/li>\n<li><strong>CRITICAL FIX:<\/strong> Hardened <strong>CRON Reset<\/strong> logic. Fixed recalculation to prevent past events from firing immediately upon reset, respecting server time offset.<\/li>\n<li><strong>MAINTENANCE:<\/strong> <strong>Clean Uninstall<\/strong> (<code>uninstall.php<\/code>). The plugin now automatically wipes all its options and credentials from the database upon deletion.<\/li>\n<\/ul>","raw_excerpt":"Automate archive (Ephemeris) &amp; new posts to Bluesky &amp; Mastodon. Includes scheduling, lists, editorial control and multi-language support.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pan.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/265833","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pan.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pan.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pan.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=265833"}],"author":[{"embeddable":true,"href":"https:\/\/pan.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/jrmora"}],"wp:attachment":[{"href":"https:\/\/pan.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=265833"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pan.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=265833"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pan.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=265833"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pan.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=265833"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pan.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=265833"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pan.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=265833"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}