{"id":325737,"date":"2026-07-17T13:57:48","date_gmt":"2026-07-17T13:57:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/polls-for-activitypub\/"},"modified":"2026-07-18T12:17:51","modified_gmt":"2026-07-18T12:17:51","slug":"polls-for-activitypub","status":"publish","type":"plugin","link":"https:\/\/cor.wordpress.org\/plugins\/polls-for-activitypub\/","author":18854320,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.10","stable_tag":"1.0.10","tested":"7.0.2","requires":"6.9","requires_php":"8.1","requires_plugins":null,"header_name":"Polls For ActivityPub","header_author":"Andr\u00e9 Menrath","header_description":"Mastodon compatible polls. The development of this plugin was funded through the <strong>NGI0 Core Fund<\/strong>, a fund established by <strong>NLnet<\/strong>.","assets_banners_color":"c7c6ca","last_updated":"2026-07-18 12:17:51","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/nlnet.nl\/donating\/","header_plugin_uri":"https:\/\/codeberg.org\/linos\/wordpress-polls-for-activitypub","header_author_uri":"https:\/\/graz.social\/@linos","rating":0,"author_block_rating":0,"active_installs":10,"downloads":152,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.10":{"tag":"1.0.10","author":"andremenrath","date":"2026-07-18 12:17:51"},"1.0.6":{"tag":"1.0.6","author":"andremenrath","date":"2026-06-29 16:59:15"},"1.0.7":{"tag":"1.0.7","author":"andremenrath","date":"2026-06-30 21:28:00"},"1.0.8":{"tag":"1.0.8","author":"andremenrath","date":"2026-06-30 22:00:21"},"1.0.9":{"tag":"1.0.9","author":"andremenrath","date":"2026-07-17 13:57:14"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.gif":{"filename":"icon-128x128.gif","revision":3590431,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":3590431,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3590431,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3590431,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3612564,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"preferredVersions\":{\"php\":\"8.3\",\"wp\":\"latest\"},\"landingPage\":\"\\\/wp-admin\\\/edit.php?post_type=pfap_poll\",\"steps\":[{\"step\":\"setSiteOptions\",\"options\":{\"blogname\":\"Poll For ActivityPub Demo\",\"blogdescription\":\"Polls that are compatible with Mastodon and the Fediverse\",\"permalink_structure\":\"\\\/%postname%\\\/\"}},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"activitypub\"},\"options\":{\"activate\":true}},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"polls-for-activitypub\"},\"options\":{\"activate\":true}},{\"step\":\"login\",\"username\":\"admin\"},{\"step\":\"mkdir\",\"path\":\"wordpress\\\/wp-content\\\/mu-plugins\"},{\"step\":\"writeFile\",\"path\":\"wordpress\\\/wp-content\\\/mu-plugins\\\/show-admin-notice-2.php\",\"data\":\"<?php\\nadd_action(\\n'admin_notices',\\nfunction() {\\n$dismissed = get_user_option( 'dismissed_expose_blueprint_notice-2', get_current_user_id() );\\nif ( $dismissed ) {\\nreturn;\\n}\\necho '<div class=\\\"notice notice-info is-dismissible\\\" id=\\\"custom-admin-notice-2\\\"><p>' . esc_html( 'Welcome and have fun \\ud83d\\udc4b' ) . '<\\\/p><\\\/div>';\\necho '<div class=\\\"notice notice-warning is-dismissible\\\" id=\\\"custom-admin-notice-2\\\"><p>' . esc_html( 'Federation and ActivityPub will not work in this Playground. It is only meant for exploring Polls from a local point of view!' ) . '<\\\/p><\\\/div>';\\n}\\n);\\nadd_action('wp_ajax_dismiss_custom-admin-notice-2', function() {\\ncheck_ajax_referer('custom-admin-notice-2', 'nonce');\\n$user_id = get_current_user_id();\\nif ( $user_id ) {\\nupdate_user_option($user_id, 'dismissed_expose_blueprint_notice-2', 1, false);\\nwp_send_json_success();\\n} else {\\nwp_send_json_error('User not found');\\n}\\n} );\\nadd_action('admin_footer', function() {\\n?>\\n<script type=\\\"text\\\/javascript\\\">\\njQuery(document).ready( function($) {\\nvar ajaxurl = '<?php echo esc_url( admin_url( 'admin-ajax.php' ) ); ?>';\\nvar nonce = '<?php echo esc_html( wp_create_nonce( 'custom-admin-notice-2' ) ); ?>';\\n$( '#custom-admin-notice-2' ).on( 'click', '.notice-dismiss', function() {\\n$.ajax({\\nurl: ajaxurl,\\ntype: 'POST',\\ndata: {\\naction: 'dismiss_custom-admin-notice-2',\\nnonce: nonce\\n}\\n});\\n});\\n});\\n<\\\/script>\\n<?php\\n} );\"},{\"step\":\"setSiteOptions\",\"options\":{\"activitypub_actor_mode\":\"blog\",\"activitypub_support_post_types\":[\"post\",\"pfap_poll\"]}}]}"}},"all_blocks":{"polls-for-activitypub\/poll":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"polls-for-activitypub\/poll","title":"Poll for ActivityPub","category":"widgets","icon":"feedback","description":"Create or embed a poll in your posts","textdomain":"polls-for-activitypub","keywords":["poll","survey","vote","question"],"version":"1.0.0","supports":{"html":false,"anchor":true,"align":false,"inserter":true},"attributes":{"pollPostId":{"type":"integer","default":null},"mode":{"type":"string","enum":["standalone","choice","create","embed","unset"],"default":"unset"}},"usesContext":["postType","postId"],"editorScript":"file:.\/index.js","editorStyle":"file:.\/index.css","style":"file:.\/style-index.css","render":"file:.\/render.php","viewScriptModule":"file:.\/view.js","viewScript":["wp-api-fetch","wp-i18n"]}},"tagged_versions":["1.0.10","1.0.6","1.0.7","1.0.8","1.0.9"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3590431,"resolution":"1","location":"assets","locale":"","width":1107,"height":799},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3590431,"resolution":"2","location":"assets","locale":"","width":1072,"height":739},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3590431,"resolution":"3","location":"assets","locale":"","width":777,"height":549},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3590431,"resolution":"4","location":"assets","locale":"","width":977,"height":615}},"screenshots":{"1":"Admin UI when editing a poll","2":"Overview of all polls in the Admin UI","3":"Poll in the Frontend before voting","4":"Poll in the Frontend after voting"}},"plugin_section":[],"plugin_tags":[162216,162215,3502],"plugin_category":[53],"plugin_contributors":[202335],"plugin_business_model":[],"class_list":["post-325737","plugin","type-plugin","status-publish","hentry","plugin_tags-activitypub","plugin_tags-fediverse","plugin_tags-polls","plugin_category-ratings-and-reviews","plugin_contributors-andremenrath","plugin_committers-andremenrath"],"banners":{"banner":"https:\/\/ps.w.org\/polls-for-activitypub\/assets\/banner-772x250.jpg?rev=3590431","banner_2x":"https:\/\/ps.w.org\/polls-for-activitypub\/assets\/banner-1544x500.jpg?rev=3590431","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/polls-for-activitypub\/assets\/icon-128x128.gif?rev=3590431","icon_2x":"https:\/\/ps.w.org\/polls-for-activitypub\/assets\/icon-256x256.gif?rev=3590431","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/polls-for-activitypub\/assets\/screenshot-1.png?rev=3590431","caption":"Admin UI when editing a poll"},{"src":"https:\/\/ps.w.org\/polls-for-activitypub\/assets\/screenshot-2.png?rev=3590431","caption":"Overview of all polls in the Admin UI"},{"src":"https:\/\/ps.w.org\/polls-for-activitypub\/assets\/screenshot-3.png?rev=3590431","caption":"Poll in the Frontend before voting"},{"src":"https:\/\/ps.w.org\/polls-for-activitypub\/assets\/screenshot-4.png?rev=3590431","caption":"Poll in the Frontend after voting"}],"raw_content":"<!--section=description-->\n<h4>WordPress \u2013 Polls for ActivityPub<\/h4>\n\n<p>This plugin works as an addon to the <a href=\"https:\/\/wordpress.org\/plugins\/activitypub\/\">WordPress ActivityPub plugin<\/a>. It brings lightweight polls to your WordPress site that reach the Fediverse. The polls are fully interoperable with platforms like Mastodon.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Modern block editor integration (Gutenberg)<\/li>\n<li>Interactive front-end for voting and viewing results<\/li>\n<li>Accepts votes from both local logged-in users and remote ActivityPub accounts (fully compatible with Mastodon)<\/li>\n<li>Email notifications for poll creators and local voters when results are available<\/li>\n<li>Configurable slug for polls and customization options for poll creation<\/li>\n<li>Votes stored as a custom WordPress comment type, with cached tallies for performance<\/li>\n<\/ul>\n\n<h4>Source Code<\/h4>\n\n<p>This is a community plugin. Feel free to bring up ideas, raise issues, fork the code or do anything else you like. The source code repository can be found at <a href=\"https:\/\/codeberg.org\/linos\/wordpress-polls-for-activitypub\">Codeberg<\/a>. Check out the wiki as well as the <code>CONTRIBUTING.md<\/code> and <code>CODE_OF_CONDUCT.md<\/code> files for further guidance.<\/p>\n\n<h3>Acknowledgement<\/h3>\n\n<p>This <a href=\"https:\/\/nlnet.nl\/project\/WP-ActivityPub-polls\/\">project<\/a> was funded through the <a href=\"https:\/\/nlnet.nl\/commonsfund\">NGI0 Commons Fund<\/a> a fund established by <a href=\"https:\/\/nlnet.nl\">NLnet<\/a> with financial support from the European Commission's <a href=\"https:\/\/ngi.eu\">Next Generation Internet<\/a> programme, under the aegis of <a href=\"https:\/\/commission.europa.eu\/about-european-commission\/departments-and-executive-agencies\/communications-networks-content-and-technology_en\">DG Communications Networks, Content and Technology<\/a> under grant agreement No <a href=\"https:\/\/cordis.europa.eu\/project\/id\/101135429\">101135429<\/a>. Additional funding is made available by the <a href=\"https:\/\/www.sbfi.admin.ch\/sbfi\/en\/home.html\">Swiss State Secretariat for Education, Research and Innovation<\/a> (SERI).<\/p>\n\n<!--section=installation-->\n<ol>\n<li>This plugin depends on the <a href=\"https:\/\/wordpress.org\/plugins\/activitypub\/\">ActivityPub plugin<\/a>. Make sure you have installed and updated it first.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20the%20activitypub%20plugin%3F\"><h3>Do I need the ActivityPub plugin?<\/h3><\/dt>\n<dd><p>Yes. This plugin is an add-on for the ActivityPub plugin and requires it to function.<\/p><\/dd>\n<dt id=\"who%20can%20vote%3F\"><h3>Who can vote?<\/h3><\/dt>\n<dd><p>Both logged-in users and remote ActivityPub accounts can participate in polls.<\/p><\/dd>\n<dt id=\"can%20i%20embed%20polls%20into%20normal%20posts%3F\"><h3>Can I embed polls into normal posts?<\/h3><\/dt>\n<dd><p>No, though it can be enabled as an experimental feature. Federation of embeds has issues, and the WordPress user interface in not tested that meticulously.<\/p><\/dd>\n<dt id=\"can%20i%20also%20vote%20on%20polls%20in%20the%20fediverse\"><h3>Can I also vote on polls in the Fediverse<\/h3><\/dt>\n<dd><p>Not for now. These feature may come in the feature, when the reader in the ActivityPub plugin is mature.<\/p><\/dd>\n<dt id=\"where%20are%20the%20votes%20stored%3F\"><h3>Where are the votes stored?<\/h3><\/dt>\n<dd><p>Votes are stored as a custom WordPress comment type, ensuring compatibility with WordPress systems and good performance.<\/p><\/dd>\n<dt id=\"will%20i%20get%20notified%20about%20poll%20results%3F\"><h3>Will I get notified about poll results?<\/h3><\/dt>\n<dd><p>Yes. Poll creators and local voters can receive email notifications when results are available.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20suitable%20for%20large-scale%20sites%3F\"><h3>Is this plugin suitable for large-scale sites?<\/h3><\/dt>\n<dd><p>If a persistent object cache is available, it will be used automatically. Polls with up to 1,000 votes should generally perform well.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.10<\/h4>\n\n<ul>\n<li>Fix: Hide refresh button when poll is expired<\/li>\n<li>Fix: Improve screen-reader-text for poll results<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Fix: issues from HAN accessibility review<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Fix: wrong legacy license URIs at some places in the code-comments<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Fix: blueprint preview did not install plugin correctly<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Initial release on WordPress.org<\/li>\n<\/ul>","raw_excerpt":"Fediverse compatible polls. The development of this plugin was funded by the NGI0 Core Fund, a fund established by NLnet.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/325737","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=325737"}],"author":[{"embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/andremenrath"}],"wp:attachment":[{"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=325737"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=325737"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=325737"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=325737"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=325737"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=325737"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}