PressForward is a free plugin that provides an editorial workflow for content aggregation and curation within the WordPress dashboard. It is designed for bloggers and editorial teams who wish to collect, discuss, and share content from a variety of sources on the open web.
PressForward helps you:
- Collect content from the web via a feed reader and a bookmarklet
- Discuss content through a collaborative editing interface
- Share content using best practices for attribution and citation
- Aggregate content using RSS/Atom feeds
- Capture any web content with a bookmarklet
- Import full text, image, video content, and post metadata
- Batch add feeds using OPML files
- Integrate standardized content with Readability
- Discuss content internally with private commenting
- Count nominations from teams of contributors and editors
- Expose item metadata, including the name of the source and method of nomination
- Allow contributors to send items directly to their own Twitter account
- Attach full content, attribution link, canonical URL, and metadata to WordPress Posts as Draft
- Republish any content type supported by your theme (text, image, quote, snippet, etc.)
- Optional auto-redirect back to original source
- Export an RSS feed that combines all content from site’s feed list
Instructions for use are found in our User Manual.
See how we compare to other WordPress plugins.
The PressForward Plugin is developed and maintained by the Roy Rosenzweig Center for History and New Media at George Mason University as part of the PressForward Project, generously funded by the Alfred P. Sloan Foundation. Our developers include Aram Zucker-Scharff, Boone B. Gorges, and Jeremy Boggs. PressForward is free to use and modify under a GNU GPL2 license.
Detailed information about our code can be found on our GitHub Wiki.
Our Five-Step Quick Start Guide can be found in our User Manual.
- Search the WordPress Plugin Directory and download the PressForward plugin; or
- Go to the latest version on GitHub.
- Download the zip or tar.gz file of the most recent version
- Rename zipped folder ‘pressforward’
- Place the ‘pressforward’ folder in your ‘/wp-content/plugins’ directory using your FTP client.
* Activate plugin via the “Installed Plugins” menu in the WordPress Dashboard
* The PressForward menu should now appear in your WordPress Dashboard. Clicking on the PressForward icon will display tabs.
A complete User Manual also is available.
A list of FAQs can be found in our User Manual
Contributors & Developers
“PressForward” is open source software. The following people have contributed to this plugin.Contributors
Translate “PressForward” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
- Bumped required PHP version to 7.3.0.
- Updated to latest version of Readability.php library, for server-side parsing of items imported via RSS.
- Visual and usability improvements to Nominate This window.
- Improvements to the ‘Bookmarklet’ section of the Tools admin panel, including a clipboard tool that makes it easier to set up the Nominate This bookmarklet on mobile devices.
- Reworked the trash deletion system to use WordPress’s pseudo-cron system, for improved reliability.
- Improvements to internal library loading, and updates to various PHP libraries.
- Improvements to internationalization, including integration with wordpress.org translation systems.
- Fixed bug that caused tags not to be imported from Nominate This in certain cases.
- Improvements to the way that trash deletion is handled on a per-item basis, including the ability to enter 0 as the “retain time”, thereby disabling automatic deletion of old items.
- Fixed bug that prevented users from uploading OPML files for import.
- Refactored the Sort feature on the Reader interface for more reliable performance.
- Internal improvements to allow for better customization of the “draft” post type via filter.
- Eliminated a number of unused libraries.
- Bumped WordPress requirement to 5.7.
- Overhaul to the way that the Nominate This window fetches remote content, for improved performance, improved parsing of source with content, and better error handling.
- Rolled back dynamic source statement from 5.3.0 in favor of legacy source statement in post body.
- Introduced new, optional email notifications for nominators (on successful nomination, and on nomination promotion).
- Added support for JSON-LD data detection when fetching remote items in Nominate This.
- Fixed bug that prevented categories from being properly saved during the nomination process.
- Fixed bug that prevented Subscribed Feeds from being edited in the Block Editor.
- Fixed bug that caused ‘Drafted’ filter to show others’ drafts to users who don’t have the proper permissions.
- Internal improvements to conform with WordPress coding standards and best practices.
- Fixed bug that prevented certain OPML imports from completing.
- Fixed bug that prevented the ‘Refresh Feed Items’ button from working.
- Fixed pagination bugs in Reader mode.
- Improved appearance and functionality of modals after recent Bootstrap library update.
- Improved compatibility with PHP 8.1+.
- Added Source field to the bookmarklet interface.
- Fixed bug where Source statement was appended incorrectly to certain pieces of content.
- Fixed bug that prevented metas from being transferred during nomination advancement.
- Source statement is now appended to the post content dynamically, rather than inserted into the database.
- Improved caching of external post fetches.
- Improved caching and performance when fetching OpenGraph items.
- Fixed bug in folder syntax when querying for nominations.
- Fixed incorrect syntax in bookmarklet code
- Improved PHP 8 compatibility
- Fix bug in comment AJAX that prevented submission in some cases
- Security hardening
- Updates to Twitter Bootstrap library
- WP 6.0 compatibility
- Improved sanitization
- Improve admin load speed with caching techniques
- Rebuild CSS and JS assets
- Fixed improper sanitization of content nominated via bookmarklet
- Fixed incorrect function name introduced in 5.2.4
- Improved compatibility with latest versions of PHP
- Security fix: Fixed potential XSS vulnerability
- Security hardening against XSS and CSRF
- Security fix: Removed potential iframe vulnerabilities in library test directories.
- Removed unnecessary files to reduce plugin size.
- Fixed syntax error.
- Incorporated supporting authentication and API libraries for a future PressForward extension.
- Built out authentication flow to transmit data through the PF API with full data encryption.
- Fixed support for user meta to match standard WordPress use.
- Failed OpenGraph fetch now has a fallback.
- Support feeds without GUIDs.
- Items nominated with the bookmarklet now have their set author trump the author data set from mirrored feed items.
- Assure we have backwards compatibility for the API with PHP 5.3
- Fixing our filtering of Post Meta to respect the $single argument.
- Add expected WordPress pagination headers to the API response.
- A wide variety of small fixes to assure unit testing works from PHP 5.3 through PHP 7.2
- Updated our Text Stats library to match backwards compatibility expectations.
- Allow current version of Nominate This to support the standard WordPress Metabox API.
- Bookmarklet use of Send to Draft/Publish now properly shows as drafted in the nomination panel.
- Allow a feed to have a default author set.
- Changed when source_url is fetched.
- Optimized the comment query.
- Optimized relationship queries.
- Pre-fetch folders.
- Users can now receive email notifications when an item is nominated.
- The PressForward API can now be filtered using query arguments.
- PressForward is now compatible with the WPMU SmartCrawl SEO plugin.
- Fixed a bug that prevented items that were nominated and also sent to draft by the same user from appearing in posts.
- Fixed a bug created by emojis.
- Fixed a bug that prevented featured images from being added.
- Fixed a bug that allowed for images to be duplicated in the media library when nominated from both the Nominate This Bookmarklet and All Content.
- Fixed a bug that prevented PressForward from collecting content from certain feeds.
- Fixed a bug that created compatibility issues with older versions of PHP.
- Changed the language on the ‘Add Feeds’ page button to read “Submit” instead of “Save Changes.”
- Fixed a bug to ensure that nominated items in all content remain marked as nominated.
- Items read in Reader View are now marked as “Read” in All Content.
- Fixed a bug that caused items nominated from both the Nominate This Bookmarklet and All Content to be duplicated.
- Fixed a bug that caused archived posts to be hidden due to pagination.
- Fix a bug that prevented the bookmarklet from increasing the nomination count on nominated posts.
- Fixed multiple bugs with the nomination counting process.
- Functionality of the tabs in Tools restored.
- OPML files no longer include empty outline elements.
- When a feed’s url is updated the preview of the url in Subscribed Feeds now reflects the updated url rather than the GUID.
- New endpoints with statistics about PressForward posts.
wp-json/pf/v1/stats/generalendpoint includes general data about the PressForward installation including a count of all published PF posts, a count of all nominations, and a count of all the items.
wp-json/pf/v1/stats/pf_postedendpoint includes data on every PressForward post that has been published. Included are metrics for each post such as a word and sentence count, a flesch-kincaid score, and a list of users who nominated the item
wp-json/pf/v1/stats/authorsendpoint includes statistics about the authors of PressForward published posts.
- Stats tab in the Tools panel now displays a count of each author published and the number of published posts per feed.
- New feature prompts users to opt-in or out to allow PressForward to collect non-sensitive diagnostic data about usage.
- Changes to how an item ID is generated to prevent duplication when a post is nominated via All Content and the Bookmarklet.
- Restructured Nominate This. It should now work with servers with non-standard WP_ADMIN folder configurations and those hosts who turn off direct access to the plugin folder, including HostGator and Reclaim. Users who could not get the bookmarklet to function should remove the bookmarklet from their Bookmark Bar and replace it.
- Conflicts with other plugins’ options and settings pages are resolved.
- Prepared Readability Endpoint
- Redirects on published and forwarding posts will now redirect faster.
- Fix for post save interception leaking to other non-standard post types.
- Fixed Post Meta intercept breaking downstream filtering functions that also intercepted post meta.
- Add support for Dublin Core publisher information in PressForward’s outbound RSS feed.
- Allow developers to filter the date limiting of RSS ingestion through filter
- Nominate This errors no longer show if the site is not in WP_DEBUG mode.
- Significant improvements to Readability’s parsing and selection of article content.
- Increase compatibility with Schema.org on-page meta.
- No longer throws error if MBString library is not active in PHP
- The Refresh All Feeds debugging tool shows its results properly again.
- Nominations without authors have default authors.
- Added feeds, feed items, and folders to the PressForward endpoint.
- Optimized the the retrieval code.
- Updated jQuery library and switched from jQuery Toggle to Click.
- Enhancements to the post delete function.
- Optimized old item deletion.
- Readability library optimized and cleaned for general release.
- Improved relationship table install and check process.
- PressForward post meta keys are now registered with WordPress Core functions.
- Assured compatibility with 4.7
- Optimized item link tracking for published posts.
- Added additional checks for keywords to add to the tags in the Nominate This bookmarklet.
- Fixed a bug that prevented the bookmarklet from retrieving tags
- Fixed an issue that caused the interface to stop functioning on Windows 8 touch screens.
- Word counts recorded in post metadata are now accurate.
- Fixed a conflict between PressForward and Jetpack.
- Repaired broken unit test methodology.
- A more useful error when Nominate This can’t add a post to the database.
- Patch for issues stemming from PHP version 5.4 compatibility.
- Added PressForward data to the WP-API post endpoint.
- Drastically decreased PressForward’s potential impact on overall site queries.
- Fixes a bug where servers without cURL would fail to load pages or Nominate This.
- Fixed bug that prevented Project MUSE RSS feeds from loading.
- Assured that readability catches all content on sites where the “div” structure is unclear.
- Fixed a bug that broke the outbound OPML link
- Assured that editing a folder does not redirect users to Post Categories in the WordPress menu
- Fixed a bug that caused large OPML subscriptions to trigger an error
- Assure that readability is catching content in the references block
- Remove cURL code that was causing some servers to crash unexpectedly.
- Removed forwarding alert.
- Added support for YouTube RSS Feeds
- Nominate This now pulls in existing tags and allows users to create new tags.
- Enhanced the identification of featured images in posts
- Added support for YouTube oEmbeds
- Increased database efficiency.
- Moved all meta value management to internal library.
- Fixed bug that caused item_author to default to first user in site if no author was identified in the post. If no author is found, the author will now default to the title of the source feed.
- Resolved issue that caused nominate this button to disappear
- Resolved issue where posts with URLs whose length exceeded the GUID field maximum in the WordPress post table could not be processed.
- Fixed issue where canonical URLs were not respected by Nominate This.
- Removed potential excess extra post entries created by Nominate This.
- Added check for potential conflict of shared library file.
- Moved Core code to dependency injection system.
- Removed compatibility with PHP5.2 and added warning for those attempting to activate on PHP5.2 or lower.
- Added additional hooks to the Nominate This bookmarklet and process to allow for additional functionality.
- Improve OpenGraph parsing
- Better remove errors from the response in AJAX handlers
- Resolve occasional activation error due to interface mis-match.
- A new option in preferences allows site administrators to change the location of the source link from the bottom of the post to the top.
- Restored “Send to Draft” functionality in All Content.
- List view now has a white background to conform to accessibility standards.
- Fixed a bug where the RSS-Quick add methodology would fail upon upload of an OPML that includes broken links.
- Fixed a bug where the “Nominate This” bookmarklet failed when nominating the same article twice.
- Fixed a user permissions error which prevented Author level contributors from adding a feed (when the Feeder menu preference was changed to allow author access).
- Fixed a bug where the “Nominate” button appeared as “Submit for Review” for contributors in the Bookmarklet.
- Ensured that feeds in OPMLs will have their title retrieved after submission.
- Made adjustments to ensure that Gothamist and Medium articles can be nominated via the Nominate This bookmarklet
- Changed quick edit post statuses to feed statuses in Subscribed Feeds.
- Administrators and Contributors can now submit a feed through the Nominate This bookmarklet. Feeds are drafted and appear in yellow as “Under Review” in subscribed feeds.
- Created a template tag that can be added to a theme’s post template to reveal any internal PressForward comments on an item.
- Added a “Filter by Drafted” option to both All Content and Nominated.
- Added the ability to filter by unread items in All Content.
- Individual feeds can now be manually refreshed in Subscribed Feeds.
- The Site Redirect preference can now be overridden on a post by post basis in the Edit Post page.
- Created a “Clean Up” button to trigger the deletion process of old feed items.
- Leveraging the Heartbeat API, a new Feed retrieval progress bar appears in the Tools menu and indicates where PressForward is in the feed retrieval process.
- New column in Subscribed Feeds displays the total number of items retrieved from each feed.
- The feed url is now displayed in the Subscribed Feeds list.
- Alerted feeds now display the error message beneath the feed title in Subscribed Feeds.
- A count of alerted feeds now displays next to the Subscribed Feeds menu item.
- Alerted and pending feeds are now colored either red (alerted) or yellow (under review) in Subscribed feeds rather than appearing hidden.
- Added an option to set Press Forward’s feed reader to ignore all alerts and never make the feed inactive.
- Added an “Edit feed” link to the success and failure messages in Add Feeds.
- Adjusted transient feed ids to prevent problems with adding, removing, and reading OPML files.
- The archive action in Nominated is now a site wide action while the hide action in All Content is user specific.
- Archived items can now be unarchived.
- Fixed bug where the Refresh button wasn’t showing responses outside of Debug mode.
- Fixed a bug that caused the info box to remain open once the user has clicked out.
- Fixed a bug where the scroll location would reset when opening the comments dialog box.
- Fixed bug where the source link was sporadically generated for posts nominated or drafted using Nominate This!
- Nominate This now generates an error message rather than failing when no HTML is found.
- Nominate This button styling updated.
- Source link is now properly attached to Nominate This nominations.
- Fixed a bug where Send to Draft wasn’t working on some items.
- Added the ability to subscribe to an OPML file.
- OPML subscription imports any folders included in the OPML file.
- Added preference field for minutes between feed retrieval cycles.
- Added an OPML file link to Tools menu. Allows administrators to share their subscription list as an OPML file.
- Added edit link to the success/fail message when a feed is added.
- Added an in browser screen that indicates loading when a large OPML is uploaded.
- Added Folders and sorting by folders and feeds to the “Nominated” panel.
- Layout enhancements to the Add Feeds and Tools panels.
- Added a subscribe to feed option in the Nominate This bookmarklet.
- Added an option for users to select what post type and status nominations take on when they are sent to the next step.
- Fixed bug where alerts weren’t closed upon successful feed retrieval.
- Fixed bug causing “Nominated” usernames to repeat.
- ‘Save Inactive’ in the “Edit Feed” page no longer saves the feed as ‘Pending’.
- When sorting by ‘Last Time Feed Checked’ results now include unchecked feeds.
- Fixed in-modal comments in Nominated panel.
- Fixed bug where the Open Graph image was not being pulled in through nomination process.
- Fixed bug related to insure PressForward properly hooks to the Yoast SEO plugin’s Open Graph and Canonical values.
- Fixed bug where the author custom field was no longer overriding WordPress author.
- Fixed bug where clean-up of old posts after user-set period was not cleaning up posts.
- Now checks for known aggregation services to insure proper resolution of URLs.
- Created the Amplify dropdown button in the actions bar.
- Added button to share to Twitter to the Amplify dropdown.
- Added button to Amplify to send from All Content directly to draft.
- For clarity, changed Last Retrieved column title to Last Time Item Retrieved.
- Added OG URL tag to forwarded pages.
- Updated Readability script to detect Medium.
- Updated Readability script to retrieve pages using File Get Contents when no other methods work.
- Separated out a number of template functions into their own class.
- Attach the navbar on scroll.
- Moved Refresh button to Tools.
- Better assure that the system retrieves open graph images and sets them as Featured Images.
- Allows feed URLs to be changed via Quick Edit.
- Set up functions to better detect current page.
- Set up a debug function for displaying current page.
- If WordPress installs are greater than 4.0, all feeds not in folders will display under folders.
- Set default sort for Feeds to alphabetical.
- Set up breadcrumb titling for All Content and Nominated.
- Moved the source and byline to the head of the current article modal.
- Added help button to menu.
- Allows users to decide if they want the right menu displayed and turn it off by default.
- Allows users to set Grid or List and have the system remember it as a user preference.
- Allows users to set infinite scroll or pagination and have the system remember it as a user preference.
- Adds search to the nav menu on scroll-down.
- New tabbed settings page, with user access to tabs based on user roles.
- Allows administrators to control tab access with settings.
- Allows users to always access their settings regardless of level.
- Moved Nominate This to the Tools menu.
- Added Nominate This as a source for the Feeds menu.
- Added a Nominate This prompt for first-time users to the All Content menu.
- Allows administrators to control the display of comments based on user level.
- Open modal now counts as a hashed page state.
- Pressing the browser back button while viewing an open modal will close the modal, not go to the previous page.
- Compressed filtering options into a dropdown in the navbar.
- Opening a modal to read an item will now only set the item to Read, it will never unset the Read property.
- Added a column to the Feeds area to indicate last time the feed was retrieved.
- Allows feeds to be sorted by the last time they were retrieved.
- Fullscreen script patched to 1.2
- Flipped infobox to display over the action bar.
- No hidden items in modal navigation.
- The Folders sidebar now scrolls separately from the main page and is always fully available.
- Clarify what exactly dismissing alerts does. (It sets those feeds to Inactive.)
- Better descriptions of most settings.
- Fixed occasional content duplication on infinite scroll, when retrieval was active.
- Fixed a variety of user action responses so actions are clearer.
- Supports additional file path configurations for Nominate This.
- Nominate This now works much more optimally.
- Nominate This no longer creating crazy line breaks.
- OpenGraph image detection now working properly.
- Alert Box now more backwards compatible.
- Turned off modules no longer show turned on menus.
- Mark As Read now works properly.
- Resolved CSS overlay design conflicts.
- Fixed Nominate to Draft in the Nominated page.
- the “Nominate This” bookmarklet has moved to tools
- the “Under Review” panel has been renamed to Nominated
- refinements to sorting and filtering in the “All Content” and “Nominated” views
- the “Subscribed Feeds” panel now displays the time and date of the last update on a feed
- items can now be unnominated by clicking again on the green nominate button in All Content
- Administrators can now set the number of days to retain feed items
- users can choose to turn on pagination rather than infinite scroll
- feed alerts can now be deleted or dismissed
- items older than one week, two weeks, one month, or one year can now be archived in “Nominated”
- introduction of folders for feeds. Individual feeds can be added to folders in the “Subscribed Feeds” panel. Items in “All Content” can then be filtered by folder.
For more information on the changes see the GitHub summary for 3.4
- show hidden items on the “All Content” browse page
- upload OPML files in the “Add Feeds” panel
- return an item to the pre-readability state in the full screen mode
- provide option to turn off alerts and to change the retention time for feeds
- enhancements improve the speed of the plugin
- improvements to moving a nominated item’s metadata into a draft
- improvements to the appearance of action buttons in list and grid view
- sets a limit to the number of times an indivdual user is able to nominate a single item
For more information see the GitHub summary for 3.2