{"id":315566,"date":"2026-05-29T15:34:44","date_gmt":"2026-05-29T15:34:44","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/telebridge\/"},"modified":"2026-06-11T14:52:33","modified_gmt":"2026-06-11T14:52:33","slug":"senzastile-autopost-for-telegram","status":"publish","type":"plugin","link":"https:\/\/vec.wordpress.org\/plugins\/senzastile-autopost-for-telegram\/","author":23502797,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.0","stable_tag":"1.2.0","tested":"7.0","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Senzastile AutoPost for Telegram","header_author":"Senza Stile","header_description":"Automatically publish WordPress posts to Telegram channels.","assets_banners_color":"010000","last_updated":"2026-06-11 14:52:33","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.senzastile.it\/senzastile-autopost-for-telegram\/","header_author_uri":"https:\/\/www.senzastile.it","rating":0,"author_block_rating":0,"active_installs":0,"downloads":136,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.0":{"tag":"1.1.0","author":"senzastile","date":"2026-05-29 15:33:39"},"1.2.0":{"tag":"1.2.0","author":"senzastile","date":"2026-06-11 14:52:33"}},"upgrade_notice":{"1.2.0":"<p>Adds automatic retry for failed sends, optional edit\/delete of the Telegram message when the post changes, new <code>{hashtags}<\/code>\/<code>{categories}<\/code>\/<code>{site_name}<\/code> placeholders, and a link-preview toggle. The share history table is upgraded automatically.<\/p>","1.1.0":"<p>Adds share history, custom post types, inline buttons, template presets, posts-list manual send, and automatic migration from previous plugin data.<\/p>","1.0.0":"<p>First public release. Existing legacy options and <code>_wp_telegram_*<\/code> post meta are migrated automatically to <code>ssapt_*<\/code> keys on upgrade.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3553765,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3553765,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3553765,"resolution":"1544x500","location":"assets","locale":"","width":1755,"height":896},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3553765,"resolution":"772x250","location":"assets","locale":"","width":1909,"height":824}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.0","1.2.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3553765,"resolution":"1","location":"assets","locale":"","width":1920,"height":3308},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3553765,"resolution":"2","location":"assets","locale":"","width":1920,"height":939},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3553765,"resolution":"3","location":"assets","locale":"","width":1554,"height":861},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3553765,"resolution":"4","location":"assets","locale":"","width":1080,"height":2410},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3553765,"resolution":"5","location":"assets","locale":"","width":1080,"height":2410}},"screenshots":{"1":"Senzastile AutoPost for Telegram onboarding and Telegram setup screen.","2":"Connected AutoPost Telegram dashboard with Telegram integration enabled.","3":"Telegram post automatically published from WordPress.","4":"AutoPost Telegram connection test with image delivery verification."}},"plugin_section":[262246],"plugin_tags":[569,56715,324,174,9171],"plugin_category":[56],"plugin_contributors":[264969],"plugin_business_model":[],"class_list":["post-315566","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-automation","plugin_tags-channels","plugin_tags-sharing","plugin_tags-social","plugin_tags-telegram","plugin_category-social-and-sharing","plugin_contributors-senzastile","plugin_committers-senzastile"],"banners":{"banner":"https:\/\/ps.w.org\/senzastile-autopost-for-telegram\/assets\/banner-772x250.png?rev=3553765","banner_2x":"https:\/\/ps.w.org\/senzastile-autopost-for-telegram\/assets\/banner-1544x500.png?rev=3553765","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/senzastile-autopost-for-telegram\/assets\/icon-128x128.png?rev=3553765","icon_2x":"https:\/\/ps.w.org\/senzastile-autopost-for-telegram\/assets\/icon-256x256.png?rev=3553765","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/senzastile-autopost-for-telegram\/assets\/screenshot-1.png?rev=3553765","caption":"Senzastile AutoPost for Telegram onboarding and Telegram setup screen."},{"src":"https:\/\/ps.w.org\/senzastile-autopost-for-telegram\/assets\/screenshot-2.png?rev=3553765","caption":"Connected AutoPost Telegram dashboard with Telegram integration enabled."},{"src":"https:\/\/ps.w.org\/senzastile-autopost-for-telegram\/assets\/screenshot-3.png?rev=3553765","caption":"Telegram post automatically published from WordPress."},{"src":"https:\/\/ps.w.org\/senzastile-autopost-for-telegram\/assets\/screenshot-4.png?rev=3553765","caption":"AutoPost Telegram connection test with image delivery verification."},{"src":"https:\/\/ps.w.org\/senzastile-autopost-for-telegram\/assets\/screenshot-5.png?rev=3553765","caption":""}],"raw_content":"<!--section=description-->\n<p><strong>Tagline: WordPress \u2192 Telegram<\/strong><\/p>\n\n<p>Senzastile AutoPost for Telegram sends newly published posts to a Telegram channel using the Bot API. Settings, previews, and diagnostics live under the top-level <strong>AutoPost Telegram<\/strong> menu in your WordPress admin.<\/p>\n\n<p><strong>Features<\/strong><\/p>\n\n<ul>\n<li>Automatic sharing when a post is published (duplicate sends avoided with post meta).<\/li>\n<li>Top-level admin menu: <strong>AutoPost Telegram \u2192 Settings<\/strong> (bot token, channel, HTML template, featured image option).<\/li>\n<li>Telegram <code>parse_mode<\/code> HTML with dynamic fields escaped and markup filtered through <code>wp_kses()<\/code>.<\/li>\n<li>Card-based settings UI with hero, status, setup guide, and tools.<\/li>\n<li>Live template preview on the settings screen (sample data via AJAX).<\/li>\n<li>Optional dashboard widget with a connection snapshot.<\/li>\n<li>Manual share on the post editor for published posts.<\/li>\n<li>AJAX connection test with branded test image and HTML status message.<\/li>\n<li>Masked bot token in settings (reveal on demand; tests use saved credentials).<\/li>\n<li>Last API\/HTTP error surfaced for administrators (optional).<\/li>\n<\/ul>\n\n<p><strong>Placeholders:<\/strong> <code>{title}<\/code>, <code>{excerpt}<\/code>, <code>{url}<\/code>, <code>{hashtags}<\/code> (post tags as Telegram hashtags), <code>{categories}<\/code> (comma-separated category names), <code>{site_name}<\/code>. Legacy: <code>{permalink}<\/code> (same as <code>{url}<\/code>), <code>{author}<\/code>, <code>{date}<\/code>.<\/p>\n\n<p><strong>Allowed HTML in templates:<\/strong> <code>b<\/code>, <code>strong<\/code>, <code>i<\/code>, <code>em<\/code>, <code>code<\/code>, <code>a<\/code> (<code>href<\/code>).<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the Telegram Bot API to publish WordPress posts to Telegram channels.<\/p>\n\n<p>Service used:\nTelegram Bot API\nhttps:\/\/core.telegram.org\/bots\/api<\/p>\n\n<p>Data sent:\n- Telegram Bot Token\n- Channel ID \/ Username\n- Post title\n- Post excerpt\/content\n- Featured image (optional)<\/p>\n\n<p>Data is sent only when:\n- a post is published\n- manual connection tests are executed\n- preview actions are used<\/p>\n\n<p>Terms of Service:\nhttps:\/\/telegram.org\/tos<\/p>\n\n<p>Privacy Policy:\nhttps:\/\/telegram.org\/privacy<\/p>\n\n<h3>Troubleshooting<\/h3>\n\n<ul>\n<li><strong>Nothing posted:<\/strong> Check token and channel, bot permissions in the channel, and that the post isn\u2019t already marked as shared.<\/li>\n<li><strong>HTML looks wrong:<\/strong> Stick to allowed tags; avoid raw HTML from untrusted sources in templates.<\/li>\n<li><strong>Timeouts:<\/strong> Server firewalls or Telegram rate limits can block <code>wp_remote_post<\/code>; check the last error message in settings.<\/li>\n<li><strong>Test connection fails after update:<\/strong> Delete <code>wp-content\/plugins\/senzastile-autopost-for-telegram<\/code> (and any duplicate folder such as <code>senzastile-autopost-for-telegram-1<\/code>), then install a fresh copy of the plugin ZIP.<\/li>\n<\/ul>\n\n<h3>Translations<\/h3>\n\n<p>Translate at <a href=\"https:\/\/translate.wordpress.org\/\">translate.wordpress.org<\/a> when the project is available. A bundled <code>it_IT<\/code> pack may ship in <code>\/languages<\/code> for reference.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>senzastile-autopost-for-telegram<\/code> folder to <code>\/wp-content\/plugins\/<\/code> or install the ZIP from Plugins \u2192 Add New.<\/li>\n<li>Activate <strong>Senzastile AutoPost for Telegram<\/strong> under Plugins.<\/li>\n<li>Create a bot with <code>@BotFather<\/code> and copy the HTTP token.<\/li>\n<li>Add the bot to your Telegram channel and promote it so it can post messages.<\/li>\n<li>Go to <strong>AutoPost Telegram \u2192 Settings<\/strong>, paste the token and channel (<code>@channel<\/code> or numeric ID).<\/li>\n<li>Adjust the message template and optional featured image sending.<\/li>\n<li>Use <strong>Connection test<\/strong> to confirm delivery.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20find%20my%20channel%20id%3F\"><h3>How do I find my channel ID?<\/h3><\/dt>\n<dd><p>For public channels you can often use <code>@yourchannel<\/code>. Private channels and some setups need the numeric ID (often starting with <code>-100<\/code>). Forward a channel message to bots like <code>@userinfobot<\/code> \/ <code>@getidsbot<\/code> or use Telegram\u2019s \u201cGet Chat\u201d patterns described in the Bot API docs.<\/p><\/dd>\n<dt id=\"why%20is%20my%20featured%20image%20not%20sent%3F\"><h3>Why is my featured image not sent?<\/h3><\/dt>\n<dd><p>The post must have a featured image, the option to send the image must be enabled, and Telegram must be able to fetch your image URL (public HTTPS is typical). If sending the photo fails, the plugin falls back to a text-only message.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20support%20telegram%20html%3F\"><h3>Does this plugin support Telegram HTML?<\/h3><\/dt>\n<dd><p>Yes. Outbound messages use Telegram HTML rules. The plugin escapes dynamic WordPress fields and only allows a small HTML subset you define in templates.<\/p><\/dd>\n<dt id=\"can%20i%20disable%20auto%20share%3F\"><h3>Can I disable auto share?<\/h3><\/dt>\n<dd><p>Yes. Use the per-post option in the editor sidebar to skip Telegram for that post.<\/p><\/dd>\n<dt id=\"where%20can%20i%20see%20errors%3F\"><h3>Where can I see errors?<\/h3><\/dt>\n<dd><p>Failed API requests store the latest error for admins on <strong>AutoPost Telegram \u2192 Settings<\/strong> and in the dashboard widget when enabled.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Automatic retry queue for failed automatic sends, via WP-Cron with backoff (5 minutes, 30 minutes, 2 hours; 3 attempts). New on\/off setting <code>ssapt_retry_enabled<\/code> (default on); reuses the history table with <code>pending<\/code>\/<code>retry<\/code> rows.<\/li>\n<li>History schema v3: new <code>attempts<\/code> and <code>next_attempt_at<\/code> columns (<code>ssapt_db_version<\/code> bumped to 3, upgraded automatically).<\/li>\n<li>Keep Telegram in sync with later post changes: update the message when an already-shared post is edited (<code>editMessageText<\/code>\/<code>editMessageCaption<\/code>, opt-in <code>ssapt_edit_on_update<\/code>) and delete it when the post is trashed or unpublished (<code>deleteMessage<\/code>, opt-in <code>ssapt_delete_on_trash<\/code>, default off).<\/li>\n<li>New template placeholders: <code>{hashtags}<\/code> (post tags as Telegram-safe hashtags), <code>{categories}<\/code>, and <code>{site_name}<\/code>, with live-preview and settings chips.<\/li>\n<li>New setting <code>ssapt_disable_link_preview<\/code> (default off) to suppress the web page preview on text messages.<\/li>\n<li>Smaller bundled connection-test image (<code>assets\/test-image.png<\/code> compressed under 100 KB).<\/li>\n<li>Uninstall now removes only the legacy post meta keys this plugin actually used, instead of a broad <code>_wp_telegram_%<\/code> match that could delete other plugins' data.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Rebrand from TeleBridge to Senzastile AutoPost for Telegram (<code>ssapt_*<\/code> options, text domain <code>senzastile-autopost-for-telegram<\/code>).<\/li>\n<li>Telegram setup onboarding: inline \u201cHow to connect Telegram\u201d guide, help modal, and clearer token\/channel field hints.<\/li>\n<li>Separate <strong>Connection test<\/strong> (diagnostic image + API check) and <strong>Preview on Telegram<\/strong> (sends the same payload as the live admin preview).<\/li>\n<li>Shared preview builder (<code>SSAPT_Preview<\/code>) for UI bubbles and Telegram preview sends; history contexts <code>connection<\/code> and <code>test<\/code>.<\/li>\n<li>Inline URL button under Telegram messages (<code>ssapt_inline_button_*<\/code>, filters <code>ssapt_inline_button_*<\/code>, <code>ssapt_reply_markup<\/code>).<\/li>\n<li>Custom post type support via <code>ssapt_enabled_post_types<\/code> and <code>transition_post_status<\/code>.<\/li>\n<li>Message template presets on the settings screen.<\/li>\n<li>Share history table (<code>{prefix}ssapt_history<\/code>) with <code>context<\/code> (auto, manual, bulk, retry, test), <code>status<\/code> (sent, failed, pending), and <code>telegram_message_id<\/code> for future edit\/delete.<\/li>\n<li>Schema version option <code>ssapt_db_version<\/code> (integer, independent of plugin version).<\/li>\n<li><strong>AutoPost Telegram \u2192 History<\/strong> admin screen and bulk resend in batches of 5 (<code>ssapt_bulk_batch_size<\/code> filter).<\/li>\n<li>Stub <code>SSAPT_Queue<\/code> class for future queue\/retry workers.<\/li>\n<li>Legacy migration from previous plugin option names, <code>wp_telebridge_*<\/code>, and <code>{prefix}telebridge_history<\/code>.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial WordPress.org release (as TeleBridge).<\/li>\n<li>Branded connection test image and HTML caption with <code>ssapt_test_message_text<\/code> filter.<\/li>\n<li>Masked bot token storage; server-side connection tests (no token required in the browser).<\/li>\n<li>Linux-safe release ZIP packaging (forward-slash archive paths).<\/li>\n<\/ul>","raw_excerpt":"Automatically publish WordPress posts to Telegram channels. Custom templates, optional featured images, per-post controls, and a connection test.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/315566","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=315566"}],"author":[{"embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/senzastile"}],"wp:attachment":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=315566"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=315566"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=315566"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=315566"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=315566"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=315566"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}