{"id":261235,"date":"2026-01-15T23:51:58","date_gmt":"2026-01-15T23:51:58","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/linksentry-broken-content-reporter\/"},"modified":"2026-01-15T23:51:32","modified_gmt":"2026-01-15T23:51:32","slug":"linksentry-broken-content-reporter","status":"publish","type":"plugin","link":"https:\/\/so.wordpress.org\/plugins\/linksentry-broken-content-reporter\/","author":23303522,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.0","stable_tag":"1.0.0","tested":"6.9.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"LinkSentry \u2013 Broken Content Reporter","header_author":"Tobias Kurth","header_description":"Adds a \"Report an issue\" box (shortcode + block). Readers can report broken links\/downloads\/images; reports are stored as a CPT.","assets_banners_color":"7b1fa2","last_updated":"2026-01-15 23:51:32","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/desk9.design\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":150,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"desk9","date":"2026-01-15 23:51:32"}},"upgrade_notice":{"1.0.0":"<p>Initial release of LinkSentry. Install and activate to start collecting broken content reports from your readers.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3440697,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3440697,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3440697,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":{"linkbrco\/report-issue":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":2,"name":"linkbrco\/report-issue","title":"Report Issue (LinkSentry)","category":"widgets","icon":"flag","description":"Adds a Report an Issue button and modal for readers to report broken links, downloads, or images.","editorScript":"file:.\/index.js","editorStyle":"file:.\/editor.css","style":"file:..\/..\/assets\/css\/frontend.css","supports":{"html":false,"align":true},"attributes":{"buttonStyle":{"type":"string","default":"button"},"infoText":{"type":"string","default":""}},"textdomain":"linksentry-broken-content-reporter"}},"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3440697,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3440697,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3440697,"resolution":"3","location":"assets","locale":""}},"screenshots":{"1":"Report button on frontend","2":"Modal dialog for submitting reports","3":"Reports list in admin","4":"Settings page"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[14279,5440,108,163,3654],"plugin_category":[42,50],"plugin_contributors":[244725],"plugin_business_model":[],"class_list":["post-261235","plugin","type-plugin","status-publish","hentry","plugin_tags-broken-links","plugin_tags-downloads","plugin_tags-feedback","plugin_tags-images","plugin_tags-reports","plugin_category-contact-forms","plugin_category-media","plugin_contributors-desk9","plugin_committers-desk9"],"banners":{"banner":"https:\/\/ps.w.org\/linksentry-broken-content-reporter\/assets\/banner-772x250.png?rev=3440697","banner_2x":"https:\/\/ps.w.org\/linksentry-broken-content-reporter\/assets\/banner-1544x500.png?rev=3440697","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/linksentry-broken-content-reporter\/assets\/icon-256x256.png?rev=3440697","icon_2x":"https:\/\/ps.w.org\/linksentry-broken-content-reporter\/assets\/icon-256x256.png?rev=3440697","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/linksentry-broken-content-reporter\/assets\/screenshot-1.png?rev=3440697","caption":"Report button on frontend"},{"src":"https:\/\/ps.w.org\/linksentry-broken-content-reporter\/assets\/screenshot-2.png?rev=3440697","caption":"Modal dialog for submitting reports"},{"src":"https:\/\/ps.w.org\/linksentry-broken-content-reporter\/assets\/screenshot-3.png?rev=3440697","caption":"Reports list in admin"}],"raw_content":"<!--section=description-->\n<p>LinkSentry is a lightweight WordPress plugin that allows your blog readers to easily report broken content. Whether it's a broken download link, a dead external link, or a missing image, LinkSentry makes it simple for visitors to notify you.<\/p>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li>Shortcode <code>[linksentry]<\/code> and Gutenberg block \"Report Issue (LinkSentry)\"<\/li>\n<li>Accessible modal dialog with keyboard navigation and ARIA labels<\/li>\n<li>Issue type selection (Download, Link, Image, Other)<\/li>\n<li>Optional message and email fields<\/li>\n<li>Stores reports as a custom post type with metadata<\/li>\n<li>Per-IP throttling to prevent spam<\/li>\n<li>Nonce verification and honeypot field for security<\/li>\n<li>Optional email notifications to site administrators<\/li>\n<li>Lightweight: assets only load where the shortcode\/block is used<\/li>\n<li>Fully internationalized (ready for translation)<\/li>\n<\/ul>\n\n<p><strong>Security:<\/strong><\/p>\n\n<ul>\n<li>Nonce verification on all submissions<\/li>\n<li>Honeypot anti-spam field<\/li>\n<li>Input sanitization and output escaping<\/li>\n<li>Per-IP rate limiting via WordPress transients<\/li>\n<li>IP addresses are hashed before storage<\/li>\n<\/ul>\n\n<p><strong>Admin Features:<\/strong><\/p>\n\n<ul>\n<li>View all reports in the WordPress admin<\/li>\n<li>Custom columns: Issue Type, Page URL, Message, Submitted date<\/li>\n<li>Settings page under Settings \u2192 LinkSentry<\/li>\n<li>Configure notification email, enable\/disable notifications, throttle window<\/li>\n<li>Customizable button and form labels<\/li>\n<\/ul>\n\n<h3>Shortcode Usage<\/h3>\n\n<p>The <code>[linksentry]<\/code> shortcode can be used anywhere in your posts, pages, or widgets.<\/p>\n\n<p><strong>Basic usage:<\/strong>\n    <code>[linksentry]<\/code><\/p>\n\n<p><strong>With button style options:<\/strong>\n    <code>[linksentry buttonStyle=\"button\"]\n[linksentry buttonStyle=\"text-link\"]\n[linksentry buttonStyle=\"large-box\"]<\/code><\/p>\n\n<p><strong>With custom info text (for large-box style):<\/strong>\n    <code>[linksentry buttonStyle=\"large-box\" infoText=\"Found an issue? Let us know!\"]<\/code><\/p>\n\n<p><strong>Available button styles:<\/strong>\n* <code>button<\/code> - Default button style with icon (default)\n* <code>text-link<\/code> - Text link with icon, underline on hover\n* <code>large-box<\/code> - Full-width gray box with info text and button<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>linksentry-broken-content-reporter<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Insert the block \"Report Issue (LinkSentry)\" in any post\/page, or use the shortcode <code>[linkbrco]<\/code> (or <code>[linksentry]<\/code> for backward compatibility)<\/li>\n<li>Configure settings under Settings \u2192 LinkSentry (optional)<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20guests%20submit%20reports%3F\"><h3>Can guests submit reports?<\/h3><\/dt>\n<dd><p>Yes. Submissions are protected by nonce verification, honeypot field, and per-IP throttling. No login required.<\/p><\/dd>\n<dt id=\"where%20do%20i%20see%20reports%3F\"><h3>Where do I see reports?<\/h3><\/dt>\n<dd><p>Reports appear in the WordPress admin sidebar under \"Reports\". You can view, edit, and manage them like regular posts.<\/p><\/dd>\n<dt id=\"how%20does%20throttling%20work%3F\"><h3>How does throttling work?<\/h3><\/dt>\n<dd><p>By default, each IP address can submit one report per 60 seconds. This can be adjusted in Settings \u2192 LinkSentry.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20button%20text%3F\"><h3>Can I customize the button text?<\/h3><\/dt>\n<dd><p>Yes. Go to Settings \u2192 LinkSentry to customize the box title and submit button label.<\/p><\/dd>\n<dt id=\"are%20reports%20deleted%20when%20i%20uninstall%20the%20plugin%3F\"><h3>Are reports deleted when I uninstall the plugin?<\/h3><\/dt>\n<dd><p>No. Reports are kept by default when you uninstall. This prevents accidental data loss. You can manually delete them if needed.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Custom post type for reports<\/li>\n<li>Shortcode and Gutenberg block<\/li>\n<li>AJAX submission with security features<\/li>\n<li>Email notifications<\/li>\n<li>Admin settings page<\/li>\n<li>Full internationalization support<\/li>\n<li>Multiple button styles (button, text-link, large-box) for block and shortcode<\/li>\n<li>Report content visible in editor with full message display<\/li>\n<li>Report details meta box showing all report information<\/li>\n<li>Menu badge showing count of unread reports<\/li>\n<li>Automatic email notifications to admin on new reports<\/li>\n<li>Delete all reports functionality in settings<\/li>\n<li>Option to delete reports on plugin uninstall<\/li>\n<li>Reports marked as read when viewed<\/li>\n<li>Removed \"Add New Report\" capability from backend<\/li>\n<li>Improved email notification formatting with report links<\/li>\n<\/ul>","raw_excerpt":"LinkSentry adds a &quot;Report an issue&quot; button (shortcode + block). Readers can report broken links, downloads, or images.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/261235","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=261235"}],"author":[{"embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/desk9"}],"wp:attachment":[{"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=261235"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=261235"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=261235"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=261235"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=261235"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=261235"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}