[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fAEuolcM9X5JVnCOt9zjOIGK7sLyNJm9H1wOq1b76EfM":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":13,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29,"vulnerabilities":30,"developer":31,"crawl_stats":28,"alternatives":35,"analysis":130,"fingerprints":276},"microposts","Microposts – Microblogging post type","1.5.0","nativebreed","https:\u002F\u002Fprofiles.wordpress.org\u002Fnativebreed\u002F","\u003Cp>\u003Cstrong>Microposts\u003C\u002Fstrong> adds a simple microblogging system to your WordPress site – perfect for short posts, status updates, and mini articles.\u003C\u002Fp>\n\u003Cp>It introduces a new custom post type called \u003Cem>Micropost\u003C\u002Fem> with a minimalist writing interface and a dynamic front-end feed.\u003C\u002Fp>\n\u003Cp>Major features include:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>A clean, fast microblog editor with Gutenberg disabled.\u003C\u002Fli>\n\u003Cli>Automatic hashtag detection and linking.\u003C\u002Fli>\n\u003Cli>Tag-based filtering via AJAX.\u003C\u002Fli>\n\u003Cli>Infinite scroll loading for continuous reading.\u003C\u002Fli>\n\u003Cli>REST API endpoint for easy front-end integration.\u003C\u002Fli>\n\u003Cli>Auto-generated titles and permalinks.\u003C\u002Fli>\n\u003Cli>Content sanitisation and paragraph formatting.\u003C\u002Fli>\n\u003Cli>Admin tools for hashtag moderation.\u003C\u002Fli>\n\u003Cli>Fully responsive front-end output.\u003C\u002Fli>\n\u003Cli>SEO friendly – single page pagination.\u003C\u002Fli>\n\u003Cli>Optional support for native WordPress comments on Microposts.\u003C\u002Fli>\n\u003Cli>Shortcode [creomicro_list] for server-rendered output with date filtering, tag filtering, and sorting.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Microposts is ideal for personal sites, project updates, or internal micro-communication hubs.\u003C\u002Fp>\n\u003Ch3>Shortcodes\u003C\u002Fh3>\n\u003Ch3>[creomicro_feed]\u003C\u002Fh3>\n\u003Cp>Displays the AJAX-powered Micropost feed with infinite scroll and hashtag filtering.\u003C\u002Fp>\n\u003Cp>Example:\u003Cbr \u002F>\n[creomicro_feed]\u003C\u002Fp>\n\u003Ch3>[creomicro_list]\u003C\u002Fh3>\n\u003Cp>Displays a static, server-rendered list of Microposts with optional filtering.\u003C\u002Fp>\n\u003Cp>Attributes:\u003Cbr \u002F>\n– start=”YYYY-MM-DD”\u003Cbr \u002F>\n– end=”YYYY-MM-DD”\u003Cbr \u002F>\n– tag=”tag1,tag2″\u003Cbr \u002F>\n– sort=”asc|desc”\u003Cbr \u002F>\n– per_page=”10″\u003Cbr \u002F>\n– no_message=”Custom empty message”\u003C\u002Fp>\n\u003Cp>Examples:\u003Cbr \u002F>\n[creomicro_list start=”2025-11-01″ end=”2025-11-30″]\u003Cbr \u002F>\n[creomicro_list tag=”news,updates” sort=”asc”]\u003Cbr \u002F>\n[creomicro_list no_message=”No posts found.” per_page=”3″]\u003Cbr \u002F>\n[creomicro_list start=”2025-11-01″ end=”2025-11-30″ tag=”geopolitical,woke” sort=”asc”]\u003C\u002Fp>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This plugin is free software: you can redistribute it and\u002For modify\u003Cbr \u002F>\nit under the terms of the GNU General Public License as published by\u003Cbr \u002F>\nthe Free Software Foundation, either version 2 of the License, or\u003Cbr \u002F>\n(at your option) any later version.\u003C\u002Fp>\n\u003Cp>This plugin is distributed in the hope that it will be useful,\u003Cbr \u002F>\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\u003Cbr \u002F>\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\u003Cbr \u002F>\nGNU General Public License for more details.\u003C\u002Fp>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>Developed and maintained by \u003Ca href=\"https:\u002F\u002Fwww.creotec.com\u002F\" rel=\"nofollow ugc\">Michael Gbadebo @ Creotec Limited\u003C\u002Fa>.\u003C\u002Fp>\n","Create a Twitter-style (X-style) microblog on your WordPress site with hashtags, AJAX feed, infinite scroll, and automatic title generation.",40,603,100,1,"2026-01-31T07:50:00.000Z","6.9.4","5.8","7.2",[20,21,22,23,24],"hashtags","infinite-scroll","microblog","microblogging","short-posts","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmicroposts.1.5.0.zip",0,null,"2026-03-15T15:16:48.613Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":14,"total_installs":11,"avg_security_score":13,"avg_patch_time_days":32,"trust_score":33,"computed_at":34},30,94,"2026-04-05T02:58:50.633Z",[36,59,79,97,113],{"slug":37,"name":38,"version":39,"author":40,"author_profile":41,"description":42,"short_description":43,"active_installs":44,"downloaded":45,"rating":46,"num_ratings":47,"last_updated":48,"tested_up_to":49,"requires_at_least":50,"requires_php":51,"tags":52,"homepage":56,"download_link":57,"security_score":58,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"share-on-bluesky","Share on Bluesky","2.1.0","Matthias Pfefferle","https:\u002F\u002Fprofiles.wordpress.org\u002Fpfefferle\u002F","\u003Cp>“Share on Bluesky” is a WordPress plugin that allows you to automatically share new posts using your Bluesky-Profile.\u003C\u002Fp>\n","A simple Crossposter for Bluesky (AT Protocol)",200,3942,74,3,"2024-10-14T18:18:00.000Z","6.6.5","4.9","5.6",[53,54,55,23],"atproto","atprotocol","bluesky","https:\u002F\u002Fgithub.com\u002Fpfefferle\u002Fwordpress-bluesky","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fshare-on-bluesky.2.1.0.zip",92,{"slug":60,"name":61,"version":62,"author":63,"author_profile":64,"description":65,"short_description":66,"active_installs":32,"downloaded":67,"rating":68,"num_ratings":69,"last_updated":70,"tested_up_to":71,"requires_at_least":72,"requires_php":25,"tags":73,"homepage":25,"download_link":78,"security_score":13,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"tootpress","TootPress","0.5","unmus","https:\u002F\u002Fprofiles.wordpress.org\u002Funmus\u002F","\u003Cp>TootPress copies your toots from Mastodon to WordPress continuously. The toots can be displayed chronologically in the blog, making your timeline accessible to other people outside of Mastodon. In addition, you regain ownership of your own data back.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Copy your toots back\u003C\u002Fli>\n\u003Cli>Copy your tooted images back\u003C\u002Fli>\n\u003Cli>Display your toots on the blog\u003C\u002Fli>\n\u003Cli>Retrieve your complete timeline\u003C\u002Fli>\n\u003Cli>Languague: English, German (only FrontEnd)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Live Demo\u003C\u002Fh4>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.unmus.de\u002Ftroets\u002F\" rel=\"nofollow ugc\">Here!\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Setup Manual\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Install the Plugin in WordPress\u003C\u002Fli>\n\u003Cli>Create an Application on your Mastodon Instance to get API Access (under Settings\u002FDevelopment)\u003C\u002Fli>\n\u003Cli>Restrict the Authorization of the created Application to Read (all data)\u003C\u002Fli>\n\u003Cli>Maintain Mastodon Instance and Access Token in the TootPress Settings\u003C\u002Fli>\n\u003Cli>Retrieve your Account ID (in WordPress under Tools\u002FToots)\u003C\u002Fli>\n\u003Cli>Maintain the Account ID in the TootPress Settings\u003C\u002Fli>\n\u003Cli>Create a new WordPress Page and add the Page to your Menu\u003C\u002Fli>\n\u003Cli>Maintain the Page ID in the TootPress Settings (you find the Page ID in URL of the Browser when editing the Page in WordPress)\u003C\u002Fli>\n\u003Cli>Run Mastodon API Request once (in WordPress under Tools\u002FToots)\u003C\u002Fli>\n\u003Cli>Activate Steady Fetch\u003C\u002Fli>\n\u003Cli>That’s it!\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Instructions for Use\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>You find TootPress in WordPress in the area of Settings and Tools\u003C\u002Fli>\n\u003Cli>Steady Fetch activates the automatic and regular load of new toots\u003C\u002Fli>\n\u003Cli>First API Request will copy your last 40 toots\u003C\u002Fli>\n\u003Cli>New toots will be loaded every 15 minutes (customizable)\u003C\u002Fli>\n\u003Cli>You can load your complete timeline into WordPress with the eponymous function\u003C\u002Fli>\n\u003Cli>Loading your complete timeline can take several hours depending of the amount of toots\u003C\u002Fli>\n\u003Cli>480 toots are loaded per hour as maximum\u003C\u002Fli>\n\u003Cli>You can run a Mastodon API Request everytime at your own with the eponymous function\u003C\u002Fli>\n\u003Cli>There is no prescribed order for the execution of Steady Fetch, Complete Timeline or manual requests\u003C\u002Fli>\n\u003Cli>If problems occur, TootPress provides a Healthy Check\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Further Information\u003C\u002Fh3>\n\u003Ch4>Supported Toot Objects\u003C\u002Fh4>\n\u003Cp>Following toot objects are supported.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Text\u003C\u002Fli>\n\u003Cli>Images\u003C\u002Fli>\n\u003Cli>Galleries\u003C\u002Fli>\n\u003Cli>URLs\u003C\u002Fli>\n\u003Cli>Hashtags\u003C\u002Fli>\n\u003Cli>Mentions\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Not supported Toot Objects\u003C\u002Fh4>\n\u003Cp>Following toot objects are not supported.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Audio\u003C\u002Fli>\n\u003Cli>Video\u003C\u002Fli>\n\u003Cli>Poll\u003C\u002Fli>\n\u003Cli>Teaser\u003C\u002Fli>\n\u003Cli>Quotes\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Excluded Toot Types\u003C\u002Fh4>\n\u003Cp>Following toot types are excluded from the data transfer.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Boosts\u003C\u002Fli>\n\u003Cli>Replys\u003C\u002Fli>\n\u003Cli>Private Toots\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Architecture\u003C\u002Fh4>\n\u003Cp>Data storage and process logic is separated from the WordPress Framework. The toots are not saved in the table wp_posts. And TootPress is not registering a custom post type for the toots as well.\u003C\u002Fp>\n\u003Ch4>CSS classes\u003C\u002Fh4>\n\u003Cp>TootPress comes with basic CSS Styles. For best fit it is required to add additional styles in your theme. All TootPress UI elements can be addressed with individual CSS selectors. Please use the browser development tools to find the right classes.\u003C\u002Fp>\n\u003Ch4>Data & Files\u003C\u002Fh4>\n\u003Cp>TootPress creates 2 folders within the WordPress Uploads Directory.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>tootpress-mastodonapidata = Archive of the received Mastodon API data\u003C\u002Fli>\n\u003Cli>tootpress-images = Toot Image Folder \u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>wpCrons\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Steady Fetch (every 15 minutes, customizable)\u003C\u002Fli>\n\u003Cli>Load Complete Timeline (every 5 minutes)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>TootPress API\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Action: tootpress_toots_update\u003C\u002Fstrong>\u003Cbr \u002F>\nIt will be fired after toot update to execute custom post-processing.\u003Cbr \u002F>\nYou can use the following code.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function tootpress_toots_update_postprocessing() {\n\n    \u002F\u002F Add your code to be executed here\n\n}\nadd_action('tootpress_toots_update', 'tootpress_toots_update_postprocessing');\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Filter: tootpress_preamble_filter\u003C\u002Fstrong>\u003Cbr \u002F>\nIt outputs html content before the toot loop.\u003Cbr \u002F>\nYou can use the following code.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function tootpress_preamble_add( $preamble ) {\n\n    \u002F\u002F Add your filter code here\n    \u002F\u002F Example: $preamble='\u003Cp>Hello World.\u003C\u002Fp>';\n\n    return $preamble;\n\n}\nadd_filter( 'tootpress_preamble_filter', 'tootpress_preamble_add', 10, 1 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Filter: tootpress_closing_filter\u003C\u002Fstrong>\u003Cbr \u002F>\nIt outputs html content after the last toot loop.\u003Cbr \u002F>\nYou can use the following code.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function tootpress_closing_add( $content ) {\n\n    \u002F\u002F Add your filter code here\n    \u002F\u002F Example: $content='\u003Cp>Hello World.\u003C\u002Fp>';\n\n    return $content;\n\n}\nadd_filter( 'tootpress_closing_filter', 'tootpress_closing_add', 10, 1 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Filter: tootpress_menu_forward_label\u003C\u002Fstrong>\u003Cbr \u002F>\nThis filter overwrites the forward label in the bottom navigation.\u003Cbr \u002F>\nYou can use the following code.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function tootpress_menu_forward_label_change( $label ) {\n\n    \u002F\u002F Add your filter code here\n    \u002F\u002F Example: $label='Newer Posts';\n\n    return $label;\n\n}\nadd_filter( 'tootpress_menu_forward_label', 'tootpress_menu_forward_label_change', 10, 1 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Filter: tootpress_menu_backward_label\u003C\u002Fstrong>\u003Cbr \u002F>\nThis filter overwrites the backward label in the bottom navigation.\u003Cbr \u002F>\nYou can use the following code.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function tootpress_menu_backward_label_change( $label ) {\n\n    \u002F\u002F Add your filter code here\n    \u002F\u002F Example: $label='Older Posts';\n\n    return $label;\n\n}\nadd_filter( 'tootpress_menu_backward_label', 'tootpress_menu_backward_label_change', 10, 1 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Filter: tootpress_beforeloop_filter\u003C\u002Fstrong>\u003Cbr \u002F>\nThis filter outputs content before the toot loop (on all tootpress pages).\u003Cbr \u002F>\nYou can use the following code.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function tootpress_beforeloop_filter_add( $content, $page_number ) {\n\n    \u002F\u002F Add your filter code here\n    \u002F\u002F Example: $content='\u003Cp>Page '.$page_number.'\u003C\u002Fp>';\n\n    return $label;\n\n}\nadd_filter( 'tootpress_beforeloop_filter', 'tootpress_beforeloop_filter_add', 10, 2 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Filter: tootpress_afterloop_filter\u003C\u002Fstrong>\u003Cbr \u002F>\nThis filter outputs content after the toot loop (on all tootpress pages).\u003Cbr \u002F>\nYou can use the following code.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function tootpress_afterloop_add( $content, $current_page_number, $last_page_number ) {\n\n    \u002F\u002F Add your filter code here\n    \u002F\u002F Example: $content='\u003Cp>Page '.$current_page_number.' of '.$last_page_number.'\u003C\u002Fp>';\n\n    return $content;\n\n}\nadd_filter( 'tootpress_afterloop_filter', 'tootpress_afterloop_add', 10, 3 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Filter: tootpress_mastodon_logo_filter\u003C\u002Fstrong>\u003Cbr \u002F>\nThis filter overwrites the Mastodon Logo with Custom Logo.\u003Cbr \u002F>\nYou can use the following code.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function tootpress_mastodon_logo_change ( $img ) {\n\n    \u002F\u002F Standard Value\n    \u002F\u002F \u003Cimg class=\"toot-symbol\" src=\"FILE-URL\" alt=\"Toot Symbol\" width=\"35\" height=\"37\"\u002F>\n\n    \u002F\u002F Add your filter code here\n    \u002F\u002F Example: $img='\u003Cimg class=\"toot-symbol\" src=\"FILE-URL\" alt=\"Custom Toot Symbol\" width=\"32\" height=\"32\"\u002F>';\n\n    return $img;\n\n}\nadd_filter( 'tootpress_mastodon_logo_filter', 'tootpress_mastodon_logo_change', 10, 1 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Filter: tootpress_between_filter\u003C\u002Fstrong>\u003Cbr \u002F>\nThis filter adds custom HTML between the toots.\u003Cbr \u002F>\nYou can use the following code.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function tootpress_create_element_between ( $content ) {\n\n    \u002F\u002F Add your filter code here\n    \u002F\u002F $content='\u003Chr\u002F>';\n\n    return $content;\n\n}\nadd_filter( 'tootpress_between_filter', 'tootpress_create_element_between', 10, 1 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Filter: tootpress_toot_content_filter\u003C\u002Fstrong>\u003Cbr \u002F>\nThis filter can be used to manipulate the toot content.\u003Cbr \u002F>\nYou can use the following code.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function tootpress_manipulate_content ( $content ) {\n\n    \u002F\u002F Add your filter code here\n    \u002F\u002F $content=str_replace('href=','target=\"_blank\" href=',$content); \n\n    return $content;\n\n}\nadd_filter( 'tootpress_toot_content_filter', 'tootpress_manipulate_content', 10, 1 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Filter: tootpress_date_filter\u003C\u002Fstrong>\u003Cbr \u002F>\nThis filter overwrites the date output with custom format.\u003Cbr \u002F>\nYou can use the following code.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function tootpress_date_custom_format ( $date, $year, $month, $day, $hour, $minute, $second ) {\n\n    \u002F\u002F $date = 2023-05-30 22:40:28\n    \u002F\u002F $year = 2023\n    \u002F\u002F $month = 05\n    \u002F\u002F $day = 30\n    \u002F\u002F $hour = 22\n    \u002F\u002F $minute = 40\n    \u002F\u002F $second = 28\n\n    \u002F\u002F Add your filter code here\n    \u002F\u002F $date=$day.'.'.$month.'.'.$year.' '.$hour.':'.$minute.':'.$second;\n\n    return $date;\n\n}\nadd_filter( 'tootpress_date_filter', 'tootpress_date_custom_format', 10, 7 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Filter: tootpress_image_filter\u003C\u002Fstrong>\u003Cbr \u002F>\nThis filter can be used to manipulate image tags.\u003Cbr \u002F>\nYou can use the following code.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function tootpress_image_manipulate ($img_tag,$filename,$description,$width,$height,$image_directory_path,$amount_of_images,$image_number) {\n\n    \u002F\u002F Amount of Images\n    \u002F\u002F ----------------\n    \u002F\u002F 1 = Single Image\n    \u002F\u002F >1 = Gallery + Size of Gallery\n\n    \u002F\u002F Image Number\n    \u002F\u002F ------------\n    \u002F\u002F This number indicates position within the gallery\n\n    \u002F\u002F Add your filter code here\n    \u002F\u002F $img_tag=str_replace('alt=','class=\"tootpress-image\" alt=',$img_tag);\n\n    return $img_tag;\n\n}\nadd_filter( 'tootpress_image_filter', 'tootpress_image_manipulate', 1, 8 );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Related Links\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcircuscode\u002Ftootpress\" rel=\"nofollow ugc\">Source Code @ GitHub\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.unmus.de\u002Ftootpress\u002F\" rel=\"nofollow ugc\">Official Plugin Page\u003C\u002Fa> (German)\u003C\u002Fli>\n\u003C\u002Ful>\n","TootPress copies your toots from Mastodon to WordPress.",3017,90,4,"2025-07-19T17:43:00.000Z","6.8.5","6.1",[74,75,76,23,77],"blog","fediverse","mastodon","toots","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftootpress.0.5.zip",{"slug":80,"name":81,"version":82,"author":83,"author_profile":84,"description":85,"short_description":86,"active_installs":87,"downloaded":88,"rating":27,"num_ratings":27,"last_updated":89,"tested_up_to":90,"requires_at_least":91,"requires_php":25,"tags":92,"homepage":94,"download_link":95,"security_score":96,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"plurk-for-wordpress","Plurk for WordPress","1.0.1","Ricardo Gonzalez","https:\u002F\u002Fprofiles.wordpress.org\u002Frickgc\u002F","\u003Cp>Plurk for WordPress displays yours latest plurks in your WordPress blog.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Features\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>*  Simply\n*  Customizable\n*  Widget support\n*  No options page (yes, its a feature)\n*  Uses WordPress resources (no extra files needed)\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Usage\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>If you use WordPress widgets, just drag the widget into your sidebar and configure. If widgets are not your thing, use the following code to display your public Plurk messages:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003C?php plurk_messages(\"username\"); ?>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>For more info (options, customization, etc.) visit \u003Ca href=\"http:\u002F\u002Frick.jinlabs.com\u002Fcode\u002Fplurk\" title=\"Plurk for WordPress\" rel=\"nofollow ugc\">the plugin homepage\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Customization\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>The plug in provides the following CSS classes:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>* ul.plurk: the main ul (if list is activated)\n* li.plurk-item: the ul items (if list is activated)\n* p.plurk-message: each one of the paragraphs (if msgs > 1)\n* .plurk-timestamp: the timestamp span class\n* a.plurk-link: the tweet link class\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"http:\u002F\u002Fcavemonkey50.com\u002F\" rel=\"nofollow ugc\">Ronald Heft\u003C\u002Fa> – The plugin is highly based in his Pownce for WordPress, so the major part of the credits goes to him.\u003Cbr \u002F>\n\u003Ca href=\"http:\u002F\u002Fbohuco.net\u002Fblog\" rel=\"nofollow ugc\">Michael Feichtinger\u003C\u002Fa> – For the multi-widget feature.\u003C\u002Fp>\n\u003Ch3>Contact\u003C\u002Fh3>\n\u003Cp>Suggestion, fixes, rants, congratulations, gifts et al to rick[at]jinlabs.com\u003C\u002Fp>\n","Plurk for WordPress displays yours latest plurks in your WordPress blog.",10,4946,"2009-02-08T23:15:00.000Z","2.7","2.1",[23,93],"plurk","http:\u002F\u002Frick.jinlabs.com\u002Fcode\u002Fplurk","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fplurk-for-wordpress.zip",85,{"slug":98,"name":99,"version":100,"author":83,"author_profile":84,"description":25,"short_description":101,"active_installs":87,"downloaded":102,"rating":27,"num_ratings":27,"last_updated":25,"tested_up_to":103,"requires_at_least":104,"requires_php":25,"tags":105,"homepage":110,"download_link":111,"security_score":13,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":112},"rss-stream","RSS Stream","1.0.3","RSS Stream displays your social feeds in a lifestream way.",14504,"2.3.3","2",[106,23,107,108,109],"lifestream","rss","social","twitter","http:\u002F\u002Frick.jinlabs.com\u002Fcode\u002Frss-stream","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Frss-stream.zip","2026-03-15T10:48:56.248Z",{"slug":114,"name":115,"version":116,"author":117,"author_profile":118,"description":119,"short_description":120,"active_installs":87,"downloaded":121,"rating":27,"num_ratings":27,"last_updated":122,"tested_up_to":123,"requires_at_least":90,"requires_php":25,"tags":124,"homepage":128,"download_link":129,"security_score":96,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"twittrup","Twittrup","1.1","marco_b","https:\u002F\u002Fprofiles.wordpress.org\u002Fmarco_b\u002F","\u003Cp>This plugin updates your twitter status with the latest post that you’ve made.  It also has the option of including a link back to your post so people can easily click on it to view the post.\u003Cbr \u002F>\nThe link provided in the tweet can be shorted via a service of your choice: tinyurl.com, is.gd, bit.ly or snurl.com\u003C\u002Fp>\n\u003Cp>If you wan to stay up with me, you can \u003Ca href=\"http:\u002F\u002Ftwitter.com\u002Fmarcobischoff\" rel=\"nofollow ugc\">follow me\u003C\u002Fa>.\u003Cbr \u002F>\nEnjoy!\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cp>With this version it is possible to update more than one twitter account.\u003C\u002Fp>\n\u003Cp>Still missing is the following:\u003Cbr \u002F>\now.ly as shortener service\u003Cbr \u002F>\nReact on posts which are written for the future\u003C\u002Fp>\n","Updates Twitter when you create a new blog post utilizing an shortener service of your choice.",3530,"2009-07-22T08:25:00.000Z","2.8.1",[23,125,109,126,127],"redirect","updater","url-shortener","http:\u002F\u002Fplugins.wirtschaftsinformatiker.cc\u002Fwordpress\u002Ftwittrup\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftwittrup.zip",{"attackSurface":131,"codeSignals":255,"taintFlows":269,"riskAssessment":270,"analyzedAt":275},{"hooks":132,"ajaxHandlers":235,"restRoutes":236,"shortcodes":245,"cronEvents":254,"entryPointCount":47,"unprotectedCount":14},[133,139,143,147,151,155,160,164,168,172,176,180,184,188,192,195,199,203,205,209,212,215,218,221,224,227,232],{"type":134,"name":135,"callback":136,"file":137,"line":138},"action","init","register_post_type_and_taxonomy","microposts.php",41,{"type":134,"name":140,"callback":141,"file":137,"line":142},"admin_menu","register_settings_page",42,{"type":134,"name":144,"callback":145,"file":137,"line":146},"admin_init","register_settings",43,{"type":134,"name":148,"callback":149,"file":137,"line":150},"rest_api_init","register_rest_routes",44,{"type":134,"name":135,"callback":152,"priority":153,"file":137,"line":154},"comments_support_toggle",20,45,{"type":156,"name":157,"callback":158,"priority":87,"file":137,"line":159},"filter","get_default_comment_status","filter_default_comment_status",46,{"type":134,"name":161,"callback":162,"priority":87,"file":137,"line":163},"update_option_creomicro_enable_comments","on_update_comments_option",47,{"type":134,"name":165,"callback":166,"priority":87,"file":137,"line":167},"save_post_micropost","autogenerate_title",50,{"type":156,"name":169,"callback":170,"priority":87,"file":137,"line":171},"the_content","render_hashtags",51,{"type":156,"name":173,"callback":174,"priority":87,"file":137,"line":175},"content_save_pre","sanitize_micropost_content",52,{"type":134,"name":177,"callback":178,"file":137,"line":179},"pre_get_posts","include_in_search",53,{"type":134,"name":181,"callback":182,"file":137,"line":183},"wp_enqueue_scripts","enqueue_frontend_assets",54,{"type":134,"name":185,"callback":186,"file":137,"line":187},"admin_enqueue_scripts","enqueue_admin_assets",55,{"type":156,"name":189,"callback":190,"file":137,"line":191},"template_include","load_single_template",56,{"type":134,"name":140,"callback":193,"file":137,"line":194},"register_tag_moderation_page",57,{"type":134,"name":196,"callback":197,"file":137,"line":198},"admin_post_creomicro_delete_tags","handle_delete_tags",58,{"type":156,"name":200,"callback":201,"priority":87,"file":137,"line":202},"use_block_editor_for_post_type","disable_gutenberg_for_micropost",59,{"type":134,"name":165,"callback":166,"priority":87,"file":137,"line":204},606,{"type":134,"name":206,"callback":207,"file":137,"line":208},"admin_post_creomicro_copy_template_to_theme","closure",733,{"type":156,"name":169,"callback":210,"file":137,"line":211},"creomicro_insert_feed_into_page",765,{"type":134,"name":165,"callback":213,"priority":153,"file":137,"line":214},"creomicro_extract_hashtags_to_terms",774,{"type":134,"name":216,"callback":207,"file":137,"line":217},"add_meta_boxes",786,{"type":134,"name":219,"callback":207,"file":137,"line":220},"wp_dashboard_setup",797,{"type":134,"name":222,"callback":207,"file":137,"line":223},"admin_post_creomicro_quick_micropost",827,{"type":134,"name":225,"callback":207,"file":137,"line":226},"admin_notices",894,{"type":156,"name":228,"callback":229,"file":230,"line":231},"comments_title","__return_empty_string","templates\\single-micropost.php",73,{"type":156,"name":233,"callback":207,"priority":87,"file":230,"line":234},"gettext",75,[],[237],{"namespace":238,"route":239,"methods":240,"callback":242,"permissionCallback":243,"file":137,"line":244},"creomicro\u002Fv1","\u002Flist",[241],"GET","rest_list","__return_true",321,[246,250],{"tag":247,"callback":248,"file":137,"line":249},"creomicro_feed","shortcode_feed",48,{"tag":251,"callback":252,"file":137,"line":253},"creomicro_list","shortcode_list",49,[],{"dangerousFunctions":256,"sqlUsage":257,"outputEscaping":259,"fileOperations":260,"externalRequests":27,"nonceChecks":69,"capabilityChecks":267,"bundledLibraries":268},[],{"prepared":27,"raw":27,"locations":258},[],{"escaped":68,"rawEcho":260,"locations":261},2,[262,265],{"file":137,"line":263,"context":264},568,"raw output",{"file":137,"line":266,"context":264},577,6,[],[],{"summary":271,"deductions":272},"The microposts plugin v1.5.0 demonstrates a generally good security posture, with a high percentage of properly escaped output and consistent use of prepared statements for SQL queries. The absence of any known historical vulnerabilities and critical taint flows is also a positive indicator. However, the plugin does present a concerning entry point through its REST API route, which lacks permission callbacks, meaning it can be accessed and potentially manipulated by unauthenticated users. While dangerous functions and file operations are not immediately flagged as problematic in static analysis, the lack of explicit authentication on a REST API endpoint creates a significant security gap that could be exploited.",[273],{"reason":274,"points":87},"REST API route without permission callbacks","2026-03-16T22:09:22.692Z",{"wat":277,"direct":286},{"assetPaths":278,"generatorPatterns":281,"scriptPaths":282,"versionParams":283},[279,280],"\u002Fwp-content\u002Fplugins\u002Fmicroposts\u002Fassets\u002Fmp-style.css","\u002Fwp-content\u002Fplugins\u002Fmicroposts\u002Fassets\u002Fmp-feed.js",[],[],[284,285],"microposts\u002Fassets\u002Fmp-style.css?ver=","microposts\u002Fassets\u002Fmp-feed.js?ver=",{"cssClasses":287,"htmlComments":288,"htmlAttributes":289,"restEndpoints":293,"jsGlobals":295,"shortcodeOutput":297},[],[],[290,291,292],"data-rest-url","data-nonce","data-comments-enabled",[294],"\u002Fcreomicro\u002Fv1\u002Flist",[296],"creomicroFeedVars",[298,299],"[creomicro_feed]","[creomicro_list]"]