{"id":1234,"date":"2010-12-06T22:10:05","date_gmt":"2010-12-06T22:10:05","guid":{"rendered":"http:\/\/wpdevel.wordpress.com\/2010\/12\/06\/as-was-discussed-in-the-last-dev-chat-i\/"},"modified":"2010-12-06T22:10:05","modified_gmt":"2010-12-06T22:10:05","slug":"as-was-discussed-in-the-last-dev-chat-i","status":"publish","type":"post","link":"https:\/\/make.wordpress.org\/core\/2010\/12\/06\/as-was-discussed-in-the-last-dev-chat-i\/","title":{"rendered":"As was discussed in the last dev chat I&#8230;"},"content":{"rendered":"<p>As was discussed in the last dev chat I\u2019ll be posting here periodically about dev changes in the Akismet <span tabindex='0' class='glossary-item-container'>plugin<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Plugin<\/span> <span class='glossary-item-description'>A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory <a href=\"https:\/\/wordpress.org\/plugins\/\">https:\/\/wordpress.org\/plugins\/<\/a> or can be cost-based plugin from a third-party.<\/span><\/span><\/span> since it ships with WP.  With version 2.5 of the plugin coming soon (next day or two hopefully) we really want to make sure it is included with WP3.1 when it ships.<\/p>\n<p>And with that, I give you:<\/p>\n<p>Changes in upcoming Akismet WordPress Plugin, version 2.5 compared to version 2.4:<\/p>\n<ul>\n<li>\nNew files:\n<ul>\n<li>admin.php<\/li>\n<li>akismet.css<\/li>\n<li>akismet.js<\/li>\n<li>widget.php<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>The new files should be reasonably self explanatory.  We\u2019ve been breaking out the different functions of the plugin to separate files.<\/p>\n<ul>\n<li>Test mode<\/li>\n<\/ul>\n<p>The test mode provides an additional parameter to Akismet.com <span tabindex='0' class='glossary-item-container'>API<span class='glossary-item-hidden-content'><span class='glossary-item-header'>API<\/span> <span class='glossary-item-description'>An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.<\/span><\/span><\/span> calls to let it know that you are only testing and that the API calls should not be used for learning.  The test mode is enabled when WP_DEBUG is TRUE or when AKISMET_TEST_MODE is TRUE.<\/p>\n<p>That last part is worth a repeat, when WP_DEBUG is TRUE then test mode is enabled.<\/p>\n<ul>\n<li>Spam check history<\/li>\n<\/ul>\n<p>The plugin now keeps a history for each comment and the interaction with Akismet.  The \u2018Edit Comment\u2019 screen will display a \u2018Comment History\u2019 section with details.<\/p>\n<p>Related to this is an indication on each comment explaining what Akismet did with the comment.<\/p>\n<ul>\n<li>Auto retry<\/li>\n<\/ul>\n<p>When a comment check fails we note that and schedule a cron job to try again later.  We found that hosts would make firewall or routing changes that would prevent WordPress from reaching Akismet.com.  This retry feature will take care of processing the comments that were missed during that time once the server can reach Akismet.com again.<\/p>\n<ul>\n<li>Clean up<\/li>\n<\/ul>\n<p>Various little house cleaning items, like deprecated function calls.<\/p>\n<ul>\n<li>WordPress <span tabindex='0' class='glossary-item-container'>HTTP<span class='glossary-item-hidden-content'><span class='glossary-item-header'>HTTP<\/span> <span class='glossary-item-description'>HTTP is an acronym for Hyper Text Transfer Protocol. HTTP  is the underlying protocol used by the World Wide Web and this protocol defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands.<\/span><\/span><\/span> API<\/li>\n<\/ul>\n<p>The Akismet plugin now uses WordPress HTTP API.  The big win here is being able use the built in proxy support.<\/p>\n<ul>\n<li>Use complete details for spam\/ham reports<\/li>\n<\/ul>\n<p>When a user specifically clicks on spam\/not spam we didn\u2019t have all of the original data for the comment.  This records that data so that Akismet can use it to learn from.<\/p>\n<ul>\n<li>Passive comment nonce<\/li>\n<\/ul>\n<p>The plugin adds a nonce field to the comment form.  The result of the nonce check is then passed to Akismet to help look for abuse.<\/p>\n<ul>\n<li>Call comment_check() on non-spam<\/li>\n<\/ul>\n<p>Even if Akismet says the comment is not spam, call check_comment() to see if any other moderation items need to adjust the status of the comment.<\/p>\n<ul>\n<li>Link highlighting<\/li>\n<\/ul>\n<p>Make links that might not be obvious in comments a bit more obvious.  Some comment spam would try to hide links, making them hard to find or see when reviewing comments in wp-<span tabindex='0' class='glossary-item-container'>admin<span class='glossary-item-hidden-content'><span class='glossary-item-header'>admin<\/span> <span class='glossary-item-description'>(and super admin)<\/span><\/span><\/span>.<\/p>\n<p>=================<\/p>\n<p>Currently available from https:\/\/plugins.svn.wordpress.org\/akismet\/dev\/ (our bleeding edge dev section) if you\u2019d like to try it out.  Once released we\u2019ll also have a tag for it in https:\/\/plugins.svn.wordpress.org\/akismet\/tags\/ (2.5) which we\u2019ll use for the WP3.1 Akismet SVN external.<\/p>\n<p>Tickets for the Akismet plugin can be created at https:\/\/plugins.trac.wordpress.org\/ \u2013 be sure to set \u2018Component: akismet\u2019<\/p>\n<p class=\"o2-appended-tags\"><a href=\"https:\/\/make.wordpress.org\/core\/tag\/akismet\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>akismet<\/a><\/p><nav class='o2-post-footer-actions'><ul class='o2-post-footer-action-row'><\/ul><div class='o2-post-footer-action-likes'><\/div><ul class='o2-post-footer-action-row'><\/ul><\/nav>","protected":false},"excerpt":{"rendered":"<p>As was discussed in the last dev chat I\u2019ll be posting here periodically about dev changes in the Akismet pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are [&hellip;]<\/p>\n","protected":false},"author":2047,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[6],"tags":[33],"class_list":["post-1234","post","type-post","status-publish","format-standard","hentry","category-status","tag-akismet","author-josephscott"],"revision_note":"","jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2AvED-jU","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/1234","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/2047"}],"replies":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments?post=1234"}],"version-history":[{"count":0,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/1234\/revisions"}],"wp:attachment":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/media?parent=1234"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories?post=1234"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags?post=1234"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}