{"id":390946,"date":"2026-10-30T23:38:01","date_gmt":"2026-10-30T23:38:01","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/liftpress\/"},"modified":"2026-10-30T23:37:30","modified_gmt":"2026-10-30T23:37:30","slug":"liftpress","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/liftpress\/","author":15764709,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.1.4","stable_tag":"2.1.4","tested":"7.1.4","requires":"6.2","requires_php":"8.0","requires_plugins":null,"header_name":"LiftPress","header_author":"Michael Ferrari","header_description":"A fitness journal and vlog for WordPress. Log workouts, nutrition, cardio and stretching, track progress, and earn achievements.","assets_banners_color":"727a9d","last_updated":"2026-10-30 23:37:30","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/getliftpress.com","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":50,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.1.4":{"tag":"2.1.4","author":"lyricsman7","date":"2026-10-30 23:37:30","revision":3776188}},"upgrade_notice":{"2.1.4":"<p>Security hardening, and Confirm Import works again.<\/p>","2.1.1":"<p>Fixes reordered workout sessions being overwritten by Active Workout. Update Active Workout to 1.15.1 too.<\/p>","2.1.0":"<p>LiftPress renames its stored data to a new prefix and moves your existing data automatically. If you use LiftPress add-ons, update them too (they need 2.1). Requires WordPress 6.2.<\/p>","2.0.1":"<p>Privacy and security update: private journals stay out of the sitemap, privacy tools support, and a fix for importing entries. Recommended for all sites.<\/p>","2.0.0":"<p>Programs, Trainer Tools, Achievements Pro, Design &amp; Dashboards and Active Workout are now add-ons. Existing customers: install the free All Add-ons bundle from getliftpress.com to keep those features. Your data is kept either way.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3776183,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3776183,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3776183,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3776183,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3776183,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.1.4"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3776183,"resolution":"1","location":"assets","locale":"","width":1440,"height":1000},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3776183,"resolution":"2","location":"assets","locale":"","width":1440,"height":1100},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3776183,"resolution":"3","location":"assets","locale":"","width":1440,"height":1100},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3776183,"resolution":"4","location":"assets","locale":"","width":1440,"height":1050}},"screenshots":{"1":"A journal entry with workout sessions, meals and recovery","2":"The front-end workout logger","3":"Progress charts","4":"Profile and trophy case"}},"plugin_section":[],"plugin_tags":[6166,6165,7108,13467,6164],"plugin_category":[],"plugin_contributors":[289858],"plugin_business_model":[],"class_list":["post-390946","plugin","type-plugin","status-publish","hentry","plugin_tags-exercise","plugin_tags-fitness","plugin_tags-journal","plugin_tags-nutrition","plugin_tags-workout","plugin_contributors-lyricsman7","plugin_committers-lyricsman7"],"banners":{"banner":"https:\/\/ps.w.org\/liftpress\/assets\/banner-772x250.png?rev=3776183","banner_2x":"https:\/\/ps.w.org\/liftpress\/assets\/banner-1544x500.png?rev=3776183","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/liftpress\/assets\/icon.svg?rev=3776183","icon":"https:\/\/ps.w.org\/liftpress\/assets\/icon.svg?rev=3776183","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/liftpress\/assets\/screenshot-1.jpg?rev=3776183","caption":"A journal entry with workout sessions, meals and recovery"},{"src":"https:\/\/ps.w.org\/liftpress\/assets\/screenshot-2.jpg?rev=3776183","caption":"The front-end workout logger"},{"src":"https:\/\/ps.w.org\/liftpress\/assets\/screenshot-3.jpg?rev=3776183","caption":"Progress charts"},{"src":"https:\/\/ps.w.org\/liftpress\/assets\/screenshot-4.jpg?rev=3776183","caption":"Profile and trophy case"}],"raw_content":"<!--section=description-->\n<p>LiftPress turns any WordPress site into a fitness journal. Log every workout set by set, embed your YouTube vlogs, track meals and macros, watch your lifts and body weight trend over time, and earn trophies along the way. It works with almost any theme and looks good on phones.<\/p>\n\n<p><strong>Log workouts your way<\/strong><\/p>\n\n<ul>\n<li>Strength, circuit, cardio and stretching sessions in the same entry<\/li>\n<li>Per-set weight, reps, timed sets, bodyweight and assisted sets, with notes<\/li>\n<li>A built-in exercise library with muscle groups and equipment, plus your own custom exercises<\/li>\n<li>Save workouts you repeat and load them again in one click<\/li>\n<li>A front-end logger so you never need to open wp-admin<\/li>\n<\/ul>\n\n<p><strong>Nutrition and recovery<\/strong><\/p>\n\n<ul>\n<li>Breakfast, lunch, dinner and snacks with a searchable food library and your own custom foods<\/li>\n<li>Calories, protein, carbs and fat totals for the day<\/li>\n<li>Sleep, water, steps, body weight, soreness, energy and stress, with a daily readiness score<\/li>\n<\/ul>\n\n<p><strong>See your progress<\/strong><\/p>\n\n<ul>\n<li>Strength progression and body weight charts<\/li>\n<li>Workout history with personal records<\/li>\n<li>A profile page with your trophy case, body stats and BMI<\/li>\n<li>Starter achievements for your first workouts, workout counts and streaks<\/li>\n<\/ul>\n\n<p><strong>Publish it<\/strong><\/p>\n\n<ul>\n<li>Journal grid, single entries and a featured homepage layout<\/li>\n<li>Exercise compendium page<\/li>\n<li>Privacy settings per user, and export \/ import of all your data<\/li>\n<li>Design settings with colors, fonts and three ready-made themes<\/li>\n<\/ul>\n\n<p><strong>Add-ons<\/strong><\/p>\n\n<p>Optional add-ons are available from <a href=\"https:\/\/getliftpress.com\">getliftpress.com<\/a>:<\/p>\n\n<ul>\n<li><strong>Programs<\/strong> \u2014 ready-made training programs with week-by-week schedules, custom programs, and automatic day drafts<\/li>\n<li><strong>Trainer Tools<\/strong> \u2014 a client dashboard for personal trainers<\/li>\n<li><strong>Achievements Pro<\/strong> \u2014 the full trophy set and your own custom achievements<\/li>\n<li><strong>Design &amp; Dashboards<\/strong> \u2014 the Hub dashboard, Weekly Recap, advanced charts and more themes<\/li>\n<li><strong>Active Workout<\/strong> \u2014 a gym-mode logger with rest timers for use mid-workout<\/li>\n<\/ul>\n\n<p>LiftPress is fully usable without any add-ons.<\/p>\n\n<h3>External services<\/h3>\n\n<p>LiftPress connects to these services:<\/p>\n\n<ul>\n<li><strong>Google Fonts<\/strong> (fonts.googleapis.com, fonts.gstatic.com) loads the fonts chosen in the LiftPress design settings. Visitors' browsers send their IP address to Google when a page loads. Turn it off with \"Don't load fonts from Google\" in the design settings. <a href=\"https:\/\/policies.google.com\/privacy\">Privacy policy<\/a>, <a href=\"https:\/\/developers.google.com\/terms\">terms<\/a>.<\/li>\n<li><strong>YouTube<\/strong> shows the videos linked to journal entries (in privacy-enhanced mode, youtube-nocookie.com) and their thumbnails (i.ytimg.com). Visitors' browsers contact YouTube only on entries that have a video. <a href=\"https:\/\/policies.google.com\/privacy\">Privacy policy<\/a>, <a href=\"https:\/\/www.youtube.com\/t\/terms\">terms<\/a>.<\/li>\n<\/ul>\n\n<p>LiftPress does not send any data to the plugin's author.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install LiftPress from Plugins \u2192 Add New, or upload the <code>liftpress<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate it. The Quick Setup screen creates your journal pages.<\/li>\n<li>Make sure pretty permalinks are on (Settings \u2192 Permalinks \u2192 Post name).<\/li>\n<li>Start logging from the <strong>Log Workout<\/strong> page or Workout Entries \u2192 Add New.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20work%20with%20my%20theme%3F\"><h3>Does it work with my theme?<\/h3><\/dt>\n<dd><p>Almost certainly. LiftPress has been used with Astra, GeneratePress, Kadence, Blocksy and many others. Its pages are built with shortcodes, so they work in any theme.<\/p><\/dd>\n<dt id=\"journal%20entries%20show%20a%20404\"><h3>Journal entries show a 404<\/h3><\/dt>\n<dd><p>Go to Settings \u2192 Permalinks and click Save. That refreshes WordPress's links.<\/p><\/dd>\n<dt id=\"is%20my%20data%20private%3F\"><h3>Is my data private?<\/h3><\/dt>\n<dd><p>Each user chooses whether their journal is public or private. Everything is stored in your own WordPress database.<\/p><\/dd>\n<dt id=\"is%20this%20medical%20advice%3F\"><h3>Is this medical advice?<\/h3><\/dt>\n<dd><p>No. Calorie burns, macros, readiness scores and other figures are estimates for general guidance. Talk to a qualified professional before starting a new exercise or nutrition program.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.1.4<\/h4>\n\n<ul>\n<li>Code tidy-up for the WordPress.org review: the entry editor, entry page and history page escape names, notes and labels only when they're printed (not when they're read), and the export files are sent with wp_send_json(). No visible change.<\/li>\n<\/ul>\n\n<h4>2.1.3<\/h4>\n\n<ul>\n<li>Code tidy-up for the WordPress.org review: the journal grid shortcode opens and closes its output buffer in one place. No visible change.<\/li>\n<\/ul>\n\n<h4>2.1.2<\/h4>\n\n<ul>\n<li>Security hardening from the WordPress.org review: all markup built by LiftPress's helpers (session cards, charts, program switchers, add-on tips, menu pickers, import rows) is now escaped when it's printed, and page scripts are added without output buffering.<\/li>\n<li>Fix: Confirm Import on Settings &gt; Export \/ Import works again (the preview had lost its security field and Skip\/Overwrite choices), and its Cancel buttons go back to the Export \/ Import tab.<\/li>\n<\/ul>\n\n<h4>2.1.1<\/h4>\n\n<ul>\n<li>Fix: moving a workout session up or down in the editor, then clicking Do Workout before saving, could open the wrong session in Active Workout, and saving the new order afterwards could copy one session over another (two of the same workout, the other one gone). Every session now has a lasting id, so Active Workout always works on the session you picked, wherever it moves; moving a session counts as an unsaved change; and a session that's never been saved asks you to save first.<\/li>\n<li>Logged sets keep their checkmarks on the right session when you reorder sessions in the editor.<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Everything LiftPress stores now uses the \"liftpress_\" prefix (settings, entry and profile fields, the entry post type, the trainer capability and the workout history table). Your data moves across automatically the first time 2.1 loads; nothing to do. Links to entries keep working.<\/li>\n<li>Fix: new sites now get the workout history table (History and personal records could stay empty on a fresh install).<\/li>\n<li>Scripts and styles are loaded through WordPress's script and style queues instead of inline tags.<\/li>\n<li>The add-ons notice for existing customers shows only on LiftPress screens and the Plugins screen.<\/li>\n<li>Requires WordPress 6.2 or newer.<\/li>\n<li>Add-ons need their 2.1-ready versions (Programs, Trainer Tools, Achievements Pro and Design &amp; Dashboards 1.1, Active Workout 1.15).<\/li>\n<\/ul>\n\n<h4>2.0.3<\/h4>\n\n<ul>\n<li>Security hardening: the equipment badge in the exercise details pop-up is escaped in the browser too.<\/li>\n<li>Tested with PHP 8.5: no warnings or notices on any LiftPress page or screen.<\/li>\n<\/ul>\n\n<h4>2.0.2<\/h4>\n\n<ul>\n<li>Fix: adding or editing a food (and opening any other pop-up) in the entry editor no longer jumps the page back to the top; it stays where you were.<\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Log Workout editor refresh: each set fits on one line (set, weight, reps) with notes, timed, assisted and bodyweight options under a \u22ef button; \"+ Add set\" copies the set above; \"+ Add Exercise\" opens the exercise search straight away; sessions are clear cards; cardio and stretching fields are labelled; and on phones the Save buttons stay at the bottom of the screen.<\/li>\n<li>Phones: History tables show each exercise as a card, the year heatmap on Progress scrolls (starting at this week), buttons and links are easier to tap, and small labels are easier to read. The quick bar shows labels under its icons.<\/li>\n<li>Fix: the History Exercise Library had its \"Sessions\" and \"Total Sets\" headings swapped.<\/li>\n<li>Journal entries show weight added to bodyweight sets, e.g. \"8 reps (+25 lbs)\".<\/li>\n<li>New LiftPress \u2192 Add-ons page listing the optional add-ons. Administrators see a few small, dismissible \"Available with\u2026\" cards where an add-on's features would appear, and one notice after 10 workouts or two weeks; members never see them, and \"Hide add-on suggestions\" turns them off. The locked \"Do Workout\" button now only shows to administrators and opens in a new tab.<\/li>\n<li>Hardening: imports only read genuine uploaded files, and form values in the entry editor use attribute escaping. Saved workout names with \"&amp;\" no longer show as \"&amp;\".<\/li>\n<li>New setting \"New journals are\": private or public, for people who haven't picked a privacy setting. New sites start private; sites that already have entries keep public, as before. The site owner's journal stays public unless they change it.<\/li>\n<li>New setting \"Trainer access\": trainers reach every user, or only the clients assigned to them on each user's profile (with Trainer Tools). Editing a client's entry as their trainer now keeps it theirs.<\/li>\n<li>Privacy: private journals no longer appear in the WordPress sitemap or in embeds of their entries.<\/li>\n<li>Privacy: only an entry's author and trainers can edit or delete it in wp-admin (WordPress Editors no longer can), and the Entries list shows other users their own entries only.<\/li>\n<li>Privacy: deleting a user account now deletes their journal entries and workout history (unless you give their content to another user). Deleting an entry removes its history rows.<\/li>\n<li>Privacy: LiftPress is now part of Tools &gt; Export Personal Data and Erase Personal Data, and suggests text for your privacy policy (Settings &gt; Privacy).<\/li>\n<li>Privacy: new \"Don't load fonts from Google\" setting. YouTube videos use YouTube's privacy-enhanced mode.<\/li>\n<li>Fix: workouts saved from the front-end Log Workout page (since 1.0.16) weren't added to the workout history or checked for achievements. They are now, and a one-time repair rebuilds the history from your existing entries (achievements found this way show up on members' next visit, without emails).<\/li>\n<li>Fix: the Body &amp; Recovery tab on profiles showed chart code instead of the charts.<\/li>\n<li>Fix: \"Hide theme title &amp; date on entry pages\" now also works with block themes such as Twenty Twenty-Five.<\/li>\n<li>Fix: a blank type badge on sessions logged from the front end, and the Quick Setup steps are numbered 1, 2, 3.<\/li>\n<li>Privacy: \"previous \/ next entry\" links in block themes skip private journals.<\/li>\n<li>Fix: importing journal entries with \"Overwrite\" could replace another user's entry from the same date. It now only replaces your own.<\/li>\n<li>Security: the [liftpress_entry] shortcode follows the journal's privacy setting and doesn't show drafts. Imported entries only restore LiftPress data. Journal page links no longer use the request's Host header. Values in the classic editor's exercise rows are escaped.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>LiftPress is now free. Programs, Trainer Tools, Achievements Pro, Design &amp; Dashboards and Active Workout are optional add-ons. Existing customers get all add-ons free, and all existing data (programs, achievements, clients, settings) is kept and comes back when the add-ons are active.<\/li>\n<li>Neutral wording for the health disclaimer shown on your pages.<\/li>\n<\/ul>\n\n<h4>1.0.18<\/h4>\n\n<ul>\n<li>Removed old function names kept for the Active Workout add-on (update Active Workout to 1.7.21 or newer).<\/li>\n<\/ul>\n\n<h4>1.0.17<\/h4>\n\n<ul>\n<li>Tested with WordPress 7.1.<\/li>\n<\/ul>\n\n<h4>1.0.16<\/h4>\n\n<ul>\n<li>Full WordPress Plugin Check clean-up: escaped output, sanitized input, prefixed functions and hooks.<\/li>\n<li>Fixed a crash when two entries were shown on the same page, and uninstall now only removes LiftPress data.<\/li>\n<\/ul>","raw_excerpt":"A fitness journal and vlog for WordPress. Log workouts, meals, cardio and stretching, track progress, and earn achievements.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/390946","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=390946"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/lyricsman7"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=390946"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=390946"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=390946"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=390946"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=390946"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=390946"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}