Version Description
[Jun 18, 2019] = * Added a filter to show Meta Keywords tag to the Search Engines like Yandex * Added some important security fixes * Added more improvements to how the SEO Analyzer works inside the plugin * Enhanced the output of the Rich Snippet's Shortcode showing the formatted date * Improved the comments to make them more meaningful * Fixed an issue with the Breadcrumbs not showing the primary category on the product pages * Fixed a compatibility issue with the Indexing API plugin and Rank Math * Fixed an issue where product categories were showing 404 when Remove Category Base option was enabled * Fixed the problem with the categories date variables not working correctly in the settings fields * Fixed a conflict with Woocommerce One Page checkout plugin * Fixed an issue where the feeds were not updating when the WooCommerce module was activated * Fixed a compatibility issue with the Ultra theme, not showing the text editor * Fixed an issue where the Search Console Box was appearing for all the users in the dashboard * Fixed a problem in the SEO Analysis where missing 'Focus Keyword in Title' test wasn't working as intended * Prepared the plugin for upcoming updates related to Gutenberg's compatibility
Full changelog can be found here - Rank Math SEO changelog
Release Info
Developer | rankmath |
Plugin | WordPress SEO Plugin – Rank Math |
Version | 1.0.27 |
Comparing to | |
See all releases |
Code changes from version 1.0.26 to 1.0.27
- assets/admin/css/metabox.css +1 -3
- assets/admin/css/setup-wizard.css +1 -1
- assets/admin/js/feedback.js +1 -1
- assets/admin/js/wizard.js +1 -1
- includes/admin/class-admin.php +9 -10
- includes/admin/class-assets.php +5 -4
- includes/admin/class-deactivate-survey.php +1 -1
- includes/admin/class-import-export.php +6 -6
- includes/admin/class-metabox.php +18 -15
- includes/admin/class-notices.php +3 -3
- includes/admin/class-option-center.php +9 -10
- includes/admin/class-options.php +9 -9
- includes/admin/class-post-columns.php +4 -4
- includes/admin/class-post-filters.php +8 -7
- includes/admin/class-registration.php +3 -3
- includes/admin/class-serp-checklist.php +2 -2
- includes/admin/class-serp-preview.php +3 -3
- includes/admin/class-setup-wizard.php +2 -2
- includes/class-cmb2.php +41 -0
- includes/class-common.php +22 -18
- includes/class-compatibility.php +4 -4
- includes/class-frontend-seo-score.php +1 -1
- includes/class-helper.php +21 -24
- includes/class-installer.php +11 -10
- includes/class-metadata.php +12 -12
- includes/class-module-manager.php +5 -5
- includes/class-module.php +5 -5
- includes/class-post.php +21 -21
- includes/class-replace-vars.php +125 -111
- includes/class-rewrite.php +16 -14
- includes/class-term.php +3 -3
- includes/class-tracking.php +4 -4
- includes/class-updates.php +3 -3
- includes/class-user.php +7 -7
- includes/frontend/class-breadcrumbs.php +4 -10
- includes/frontend/class-head.php +11 -0
- includes/frontend/paper/class-archive.php +9 -0
- includes/frontend/paper/class-author.php +9 -0
- includes/frontend/paper/class-blog.php +13 -0
- includes/frontend/paper/class-date.php +9 -0
- includes/frontend/paper/class-error-404.php +9 -0
- includes/frontend/paper/class-paper.php +37 -0
- includes/frontend/paper/class-search.php +9 -0
- includes/frontend/paper/class-shop.php +9 -0
- includes/frontend/paper/class-singular.php +9 -0
- includes/frontend/paper/class-taxonomy.php +15 -0
- includes/frontend/paper/interface-paper.php +7 -0
- includes/helpers/class-conditional.php +0 -10
- includes/metaboxes/general.php +1 -1
- includes/modules/404-monitor/class-admin.php +4 -2
- includes/modules/404-monitor/class-table.php +3 -3
- includes/modules/redirections/class-admin.php +4 -2
- includes/modules/redirections/class-form.php +1 -0
- includes/modules/rich-snippet/class-snippet-shortcode.php +6 -0
- includes/modules/search-console/class-search-console.php +4 -2
- includes/modules/woocommerce/class-admin.php +1 -92
- includes/modules/woocommerce/class-woocommerce.php +134 -35
- includes/settings/general/others.php +1 -1
- includes/settings/titles/misc.php +1 -1
- includes/settings/titles/post-types.php +1 -1
- includes/settings/titles/taxonomies.php +4 -4
- includes/template-tags.php +7 -9
- includes/updates/update-1.0.27.php +17 -0
- rank-math.php +48 -50
- readme.txt +17 -14
@@ -2,6 +2,4 @@
|
|
2 |
* Plugin: Rank Math
|
3 |
* URL: https://rankmath.com/wordpress/plugin/seo-suite/
|
4 |
* Name: metabox.css
|
5 |
-
*/#rank_math_metabox .inside{margin:0;padding:0}.rank-math-metabox-frame{position:relative;min-width:255px;max-width:1000px;margin-bottom:25px;border:1px solid #e5e5e5;background:#fff;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.04);box-shadow:0 1px 1px rgba(0,0,0,0.04)}.rank-math-metabox-frame-title{font-size:14px;line-height:1.4;margin:0;padding:8px 12px;border-bottom:1px solid #e5e5e5}.rank-math-metabox-wrap .rank-math-tabs-navigation:not(.social-tabs-navigation){padding:30px 20px 0;border-bottom:1px solid #e5e5e5;background:#fafafa}.rank-math-metabox-wrap .rank-math-tabs-navigation:not(.social-tabs-navigation) a{font-size:14px;font-weight:600;position:relative;float:left;-webkit-box-sizing:border-box;box-sizing:border-box;margin-left:7px;padding:8px 16px 4px 12px;white-space:nowrap;text-decoration:none;color:#555;border:1px solid #e6e6e6;border-bottom:0;outline:none;background:#f5f5f5;-webkit-box-shadow:none;box-shadow:none}@media (max-width: 768px){.rank-math-metabox-wrap .rank-math-tabs-navigation:not(.social-tabs-navigation) a{margin-left:-1px;padding:8px 12px 4px 8px}}.rank-math-metabox-wrap .rank-math-tabs-navigation:not(.social-tabs-navigation) a[href="#setting-panel-askreview"]{padding-right:12px;float:right;color:#e93f30}.rank-math-metabox-wrap .rank-math-tabs-navigation:not(.social-tabs-navigation) a .dashicons,.rank-math-metabox-wrap .rank-math-tabs-navigation:not(.social-tabs-navigation) a .fa{font-size:14px;line-height:inherit;min-width:20px;text-align:center}.rank-math-metabox-wrap .rank-math-tabs-navigation:not(.social-tabs-navigation) a.active{bottom:-1px;margin-top:-1px;padding-bottom:5px;color:#069de3;border-top-color:#069de3;background:#fff}.rank-math-metabox-wrap .social-tabs-navigation{display:inline-block;border-radius:3px;-webkit-box-shadow:0 1px 6px 0 rgba(35,40,45,0.18);box-shadow:0 1px 6px 0 rgba(35,40,45,0.18)}.rank-math-metabox-wrap .social-tabs-navigation-wrapper{padding-bottom:30px;text-align:center}.rank-math-metabox-wrap .social-tabs-navigation a{font-size:16px;float:left;-webkit-box-sizing:border-box;box-sizing:border-box;width:130px;padding:11px;text-decoration:none;color:#939393;border:1px solid #e5e5e5;outline:none;background:#efefef;-webkit-box-shadow:none;box-shadow:none}.rank-math-metabox-wrap .social-tabs-navigation a .dashicons{margin-right:8px}.rank-math-metabox-wrap .social-tabs-navigation .tab-facebook{border-right:0;border-radius:3px 0 0 3px}.rank-math-metabox-wrap .social-tabs-navigation .tab-facebook.tab-active{color:#fff;border-color:#3b5998;background:#3b5998}.rank-math-metabox-wrap .social-tabs-navigation .tab-twitter{border-left:0;border-radius:0 3px 3px 0}.rank-math-metabox-wrap .social-tabs-navigation .tab-twitter.tab-active{color:#fff;border-color:#55acee;background:#55acee}.rank-math-metabox-wrap .rank-math-tab{display:none;padding:30px}.serp-preview .highlight{pointer-events:none}.serp-preview-title:before{font-size:13px;font-weight:600;display:inline-block;padding-bottom:6px;content:attr(data-title);letter-spacing:.05em;text-transform:uppercase}.serp-preview-wrapper{position:relative;-webkit-transition:all .6s ease;transition:all .6s ease}.serp-preview-body{padding:15px 0;-webkit-transition:width .5s ease, padding .5s ease, margin .5s ease;transition:width .5s ease, padding .5s ease, margin .5s ease}.serp-preview-body .serp-star-rating{display:inline-block;position:relative;color:#ccc;margin-right:5px}.serp-preview-body .serp-star-rating .dashicons{font-size:16px;width:16px;height:16px}.serp-preview-body .serp-star-rating .serp-result{position:absolute;top:0;left:0;height:22px;overflow:hidden;white-space:nowrap;color:#e7711b}.serp-preview-body .cmb-row .cmb-td{width:100%;max-width:680px}.serp-preview-body .cmb-row .cmb-td .cmb2_textarea{width:100% !important}.serp-preview-footer{padding:15px 0}.serp-preview-footer .button.button-secondary{line-height:41px;padding:0 12px}.serp-preview-footer .button.button-secondary .dashicons{font-size:20px;line-height:41px}.serp-preview-bg{overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:opacity .5s ease, height .5s ease;transition:opacity .5s ease, height .5s ease;opacity:0;background-color:#fafafa;height:0;width:100%}.serp-preview-bg .serp-preview-input{position:relative;max-width:600px;pointer-events:none}.serp-preview-bg .serp-preview-input input{font:16px arial,sans-serif;padding:5px 9px 5px 16px;-webkit-transition:-webkit-box-shadow 200ms cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-box-shadow 200ms cubic-bezier(0.4, 0, 0.2, 1);transition:box-shadow 200ms cubic-bezier(0.4, 0, 0.2, 1);transition:box-shadow 200ms cubic-bezier(0.4, 0, 0.2, 1),-webkit-box-shadow 200ms cubic-bezier(0.4, 0, 0.2, 1);vertical-align:top;color:#000;border:none;border-radius:2px;outline:none;background-color:#fff;-webkit-box-shadow:0 2px 2px 0 rgba(0,0,0,0.16),0 0 0 1px rgba(0,0,0,0.08);box-shadow:0 2px 2px 0 rgba(0,0,0,0.16),0 0 0 1px rgba(0,0,0,0.08);height:44px;width:100%}.serp-preview-bg .serp-preview-input .serp-mike{position:absolute;top:0;right:50px;bottom:0;display:inline-block;width:24px;padding:0 2px 0 8px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACrElEQVR42u2Xz2sTQRSAX8VSb1K8iNqKooJH2Ux6Ksn+iPQqxZMIehJB0do/IMhmQWsvHr2KSEGk0tSLIoWIYNUKij20F2/N7iaUZnYT0kYzzhMKs0HDJiTdLcwHDwKZSd63781LBiQSSW9JZdkhzfKm1Rz9mjZp/W9YdEU3vXv4HsQZ40FtNG36q5rls//Ej4tmbSS2T15Mvp3ExOPmEMQNbBtMMEyoljcFcQN7PqyAlqNfIG7gYQ0tYNIaxA1MrJPY3wImbUqBKAXSFv0tBSIVMOkvKRDtGKWN/T6FdqRAxFNoWwpEPIXqUqBT6ALU/UVgu8GW4GD3f6f9TRDYNJTDrk7YbtiqUumHwIYoUJuHERDAS0r4CvgFECgbY+cFAR7KT+g1POmCKFDNw6WggHc3fBtVb4CAoyauBgXIG+g1Xh5mRAGah6cggBd11fK/h7lOprIs0H6uRl6KAo5O7kOv4QmPiwJ4Jqqv4FiwCtXjvD2+tRmfK6kZ/ygI2HritK0rDVGgrClJ6DWMwYC/AGuCBMYcIC2V0CzvjmbRz3j3xUjn6CfeYreUJ2wQkGD75INPX1mFfsEFrrcIYCvdhC4paWQakxajpJMr0C9YFg54i7AsClRmh9/xnr0NHcInzZStk2aLwAcGMAD9pPIazvFKVDD5rdnhJeHLX5RTyRPQHpz5o66emMc9wdlPtvA8wF7Aq2BUHh1525qEo5JtR1WeOXpickO9cJIpyuD6xJmhYiZ5ytWSl3mlnuOaf+2zDaLDXmJrSgZ/MYVEugo+gSh+FkSBa4yd5Ul87DZ5XpFl/AyIEjzYjkau8WqshU2cr13HPbgX4gJOD97n465GZlyVvC9mSKloKI2iTnbwNT+gBX54H+IaXAtxJzE3ycSAFqSAFJACUkAikXD+AHj5/wx2o5osAAAAAElFTkSuQmCC);background-repeat:no-repeat;background-position:right center;background-size:24px 24px}.serp-preview-bg .serp-preview-input .serp-search{line-height:46px;position:absolute;top:0;right:15px;bottom:0;height:46px;text-align:center;border:0;outline:0}.serp-preview-bg .serp-preview-input .serp-search svg{width:25px;height:46px;fill:#4285f4}.serp-preview-bg .serp-preview-menus{overflow:hidden;max-width:600px}.serp-preview-bg .serp-preview-menus ul{float:left;overflow:hidden;margin:0;padding:0;list-style:none}.serp-preview-bg .serp-preview-menus ul li{font-family:arial,sans-serif;font-size:13px;line-height:19px;float:left;height:15px;margin:0;padding:28px 16px 12px;color:#777}.serp-preview-bg .serp-preview-menus ul li.current{font-weight:bold;color:#1a73e8;border-bottom:3px solid #1a73e8}.serp-preview-bg .serp-preview-menus ul.menus-right{float:right}.serp-preview-bg .serp-preview-result-stats{font-family:arial,sans-serif;font-size:small;line-height:43px;margin:0 -20px;padding-right:20px;padding-left:20px;white-space:nowrap;text-overflow:ellipsis;color:#808080;background-color:#fff}.serp-preview-noindex{z-index:1;display:none;padding:15px 0;background:rgba(255,255,255,0.8);position:absolute;top:0;right:0;bottom:0;left:0}.serp-preview-noindex h3{font-weight:700;margin:0;letter-spacing:1px;text-transform:uppercase}.serp-preview-noindex p{font-size:14px;line-height:2;margin:5px 0;color:#000}.serp-preview .serp-description,.serp-preview .serp-title,.serp-preview .serp-url{font-family:arial, sans-serif;position:relative;z-index:1;display:block;overflow:hidden;width:100%;max-width:680px;margin:0;cursor:pointer}.serp-preview .serp-description:focus:before,.serp-preview .serp-description:hover:before,.serp-preview .serp-title:focus:before,.serp-preview .serp-title:hover:before,.serp-preview .serp-url:focus:before,.serp-preview .serp-url:hover:before{font-family:dashicons;z-index:-1;content:'\f464';text-align:right;background:#f0f1f3;position:absolute;top:0;right:0;bottom:0;left:0}.serp-preview .serp-description:empty:after,.serp-preview .serp-title:empty:after,.serp-preview .serp-url:empty:after{content:attr(data-empty-title)}.serp-preview .serp-title{font-size:18px;font-weight:normal;line-height:19px;white-space:nowrap;text-overflow:ellipsis;color:#1a0dab}.serp-preview .serp-url{font-size:14px;line-height:16px;margin:3px 0 5px;white-space:nowrap;text-overflow:ellipsis;color:#006621}.serp-preview .serp-description{font-size:13px;line-height:1.4;clear:left;word-wrap:break-word;color:#545454}.serp-preview .group{position:relative;min-height:10px}.serp-preview .group .cmb-row{display:none;padding:20px 0 !important;border:0}.serp-preview .group .serp-close{position:absolute;top:10px;right:10px;display:none;cursor:pointer}.serp-preview:not(.expanded-preview):not(.mobile-preview) .group.active{margin-top:20px;padding:30px 20px 20px;background:#f6f6f6}.serp-preview:not(.expanded-preview):not(.mobile-preview) .group.active .cmb-row{display:block}.serp-preview:not(.expanded-preview):not(.mobile-preview) .group.active .cmb-row.cmb2-id-rank-math-title .rank-math-variables-button{right:0}.serp-preview:not(.expanded-preview):not(.mobile-preview) .group.active .cmb-row.cmb2-id-rank-math-description .rank-math-variables-dropdown{top:60px}.serp-preview:not(.expanded-preview):not(.mobile-preview) .group.active .serp-close{display:block}.serp-preview:not(.expanded-preview):not(.mobile-preview) .group.active+.group,.serp-preview:not(.expanded-preview):not(.mobile-preview) .group+.group.active{margin-top:20px}.serp-preview:not(.expanded-preview):not(.mobile-preview) .group.active+.group+.serp-rating,.serp-preview:not(.expanded-preview):not(.mobile-preview) .group+.group.active+.serp-rating{display:none}.serp-preview .button{height:auto;padding:0 5px;outline:0}.serp-preview .button,.serp-preview .button .dashicons{font-size:15px;line-height:30px;height:auto}.serp-preview .button-secondary{margin-bottom:0;color:#818181;border-color:#e5e5e5;background:#fff !important;-webkit-box-shadow:0 1px 2px 0 #e5e5e5 !important;box-shadow:0 1px 2px 0 #e5e5e5 !important}.serp-preview .button-secondary.active,.serp-preview .button-secondary.active:hover{color:#fff;border-color:#0392d4;background:#069de3 !important}.serp-preview .button-secondary:hover{color:#069de3;border-color:#0392d4}.serp-preview-title .alignright{margin-top:-9px}.serp-preview.desktop-preview .serp-snippet-mobile{display:none}.serp-preview.desktop-preview .serp-snippet-data{color:#808080;line-height:18px;font-size:small;font-weight:normal;margin-bottom:3px}.serp-preview.desktop-preview .serp-snippet-data .serp-desktop-rating{float:left;margin-top:1px}.serp-preview.desktop-preview .serp-snippet-data .separator:first-child{display:none}.serp-preview.desktop-preview .serp-snippet-data .serp-event_name{color:#1a0dab;cursor:pointer}.serp-preview.desktop-preview .serp-snippet-data .serp-event_name:hover{text-decoration:underline}.serp-preview.desktop-preview .serp-snippet-data .serp-event_name,.serp-preview.desktop-preview .serp-snippet-data .serp-event_place{padding-left:15px}.serp-preview.desktop-preview .serp-preview-footer .alignright .dashicons{margin-right:0}.serp-preview.mobile-preview.expanded-preview .group:nth-child(2){margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #dfe1e5}.serp-preview.mobile-preview .serp-snippet-mobile{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;margin:8px -5px 0}.serp-preview.mobile-preview .serp-snippet-mobile .inner-wrapper{-webkit-box-flex:1;-ms-flex:1;flex:1;margin-left:5px;margin-right:5px}.serp-preview.mobile-preview .serp-snippet-mobile .inner-wrapper .serp-mobile-label{display:block;font-size:14px;line-height:20px;margin-bottom:4px;color:#202124;font-weight:500}.serp-preview.mobile-preview .serp-snippet-mobile .inner-wrapper .serp-rating-count{float:left}.serp-preview.mobile-preview .serp-snippet-mobile .inner-wrapper .serp-rating{float:left;margin-left:5px}.serp-preview.mobile-preview .serp-snippet-mobile .serp-rating-count{color:#808080}.serp-preview.mobile-preview .serp-snippet-data{display:none}.mobile-preview .serp-preview-title:before{content:attr(data-mobile)}.mobile-preview .serp-preview-bg{position:relative;overflow:visible;width:400px;max-width:100%;margin:auto;border-radius:8px;background-color:transparent;-webkit-box-shadow:0 1px 6px rgba(32,33,36,0.28);box-shadow:0 1px 6px rgba(32,33,36,0.28)}.mobile-preview .serp-preview-bg .serp-preview-input input{height:41px;border-bottom:1px solid rgba(0,0,0,0.12);border-radius:8px 8px 0 0;-webkit-box-shadow:none;box-shadow:none}.mobile-preview .serp-preview-bg .serp-preview-input .serp-mike{display:none}.mobile-preview .serp-preview-bg .serp-preview-input .serp-search{right:0;width:40px;height:40px;margin-right:-1px;padding:0;border:1px solid #3367d6;border-radius:0 8px 0 0;-webkit-border-top-right-radius:8px;background-color:#3b78e7;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.mobile-preview .serp-preview-bg .serp-preview-input .serp-search svg{fill:#fff}.mobile-preview .serp-preview-bg .serp-preview-menus ul{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;border-bottom-right-radius:8px;border-bottom-left-radius:8px}.mobile-preview .serp-preview-bg .serp-preview-menus ul li{font-size:12px;line-height:40px;height:40px;padding:0 16px;text-align:center;text-transform:uppercase;-webkit-box-flex:1;-ms-flex:1;flex:1}.mobile-preview .serp-preview-bg .serp-preview-menus ul li:last-child{display:none}.mobile-preview .serp-preview-bg .serp-preview-menus ul.menus-right{display:none}.mobile-preview .serp-preview-bg .serp-preview-result-stats{display:none}.mobile-preview .serp-preview-body{-webkit-box-sizing:border-box;box-sizing:border-box;width:400px;max-width:100%;margin:auto;padding-top:30px;word-wrap:break-word}.mobile-preview.expanded-preview .serp-preview-body{margin-top:10px;padding:20px;border-radius:8px;background-color:#fff;-webkit-box-shadow:0 1px 6px rgba(32,33,36,0.28);box-shadow:0 1px 6px rgba(32,33,36,0.28)}.expanded-preview .serp-description,.expanded-preview .serp-title,.expanded-preview .serp-url,.mobile-preview .serp-description,.mobile-preview .serp-title,.mobile-preview .serp-url{overflow:hidden;pointer-events:none}.expanded-preview .serp-preview-footer,.mobile-preview .serp-preview-footer{display:none}.expanded-preview.desktop-preview .serp-preview-footer{padding:15px 0}.expanded-preview.desktop-preview .serp-preview-wrapper{padding:0}.expanded-preview.desktop-preview .serp-preview-title:before{content:attr(data-desktop)}@media (min-width: 768px){.expanded-preview.desktop-preview .serp-preview-bg{height:auto;padding:15px 20px 0;opacity:1}.expanded-preview.desktop-preview .serp-preview-body{padding-left:20px}}.expanded-preview.mobile-preview .serp-preview-bg{height:auto;margin-top:20px;opacity:1}.noindex-preview .serp-preview-wrapper{position:relative}.noindex-preview .serp-preview-body{pointer-events:none;opacity:.2}.noindex-preview .serp-preview-noindex{display:-webkit-box;display:-ms-flexbox;display:flex;flex-direction:column;align-items:center;-webkit-box-align:center;-webkit-box-direction:normal;-webkit-box-orient:vertical;-webkit-box-pack:center;-ms-flex-align:center;-ms-flex-direction:column;-ms-flex-pack:center;justify-content:center}.noindex-preview .serp-preview-footer .alignright{display:none}body.rtl .serp-preview-bg .serp-preview-input input{padding-right:16px;padding-left:9px}body.rtl .serp-preview-bg .serp-preview-input .serp-search{right:auto;left:15px}body.rtl .serp-preview-bg .serp-preview-input .serp-mike{right:auto;left:50px;padding-right:8px;padding-left:2px}body.rtl .serp-preview-bg .serp-preview-menus ul,body.rtl .serp-preview-bg .serp-preview-menus li{float:right}body.rtl .serp-preview-bg .serp-preview-menus ul.menus-right,body.rtl .serp-preview-bg .serp-preview-menus li.menus-right{float:left}body.rtl .mobile-preview .serp-preview-bg .serp-search{left:0;border-radius:0;border-top-left-radius:8px}body.rtl .serp-preview .serp-description:focus:before,body.rtl .serp-preview .serp-description:hover:before,body.rtl .serp-preview .serp-title:focus:before,body.rtl .serp-preview .serp-title:hover:before,body.rtl .serp-preview .serp-url:focus:before,body.rtl .serp-preview .serp-url:hover:before{text-align:left}body.rtl .rank-math-variables-dropdown{right:auto;left:37px}.snippet-fields{padding:45px 0 15px}.length-indicator-wrapper{position:relative;display:block}.length-indicator-wrapper .length-indicator{overflow:hidden;border-radius:2px;background:-webkit-gradient(linear, left top, right top, from(#e33e2b), color-stop(18%, #f06818), color-stop(19%, #fff), color-stop(19%, #fff), color-stop(20%, #f16b17), color-stop(38%, #f1a104), color-stop(39%, #fff), color-stop(39%, #fff), color-stop(40%, #f1a404), color-stop(58%, #d9b507), color-stop(59%, #fff), color-stop(59%, #fff), color-stop(60%, #d4b509), color-stop(78%, #7bb02c), color-stop(79%, #fff), color-stop(79%, #fff), color-stop(80%, #76ae2e), to(#2da24c));background:linear-gradient(to right, #e33e2b 0%, #f06818 18%, #fff 19%, #fff 19%, #f16b17 20%, #f1a104 38%, #fff 39%, #fff 39%, #f1a404 40%, #d9b507 58%, #fff 59%, #fff 59%, #d4b509 60%, #7bb02c 78%, #fff 79%, #fff 79%, #76ae2e 80%, #2da24c 100%);position:absolute;top:-13px;right:60px;height:8px;width:180px}.length-indicator-wrapper .length-indicator span{position:absolute;z-index:11;background:#e0e0e0;height:100%;width:100%}.length-indicator-wrapper .length-indicator.invalid{background:-webkit-gradient(linear, left top, right top, from(#e33d2a), color-stop(18%, #e33d2a), color-stop(19%, #fff), color-stop(19%, #fff), color-stop(20%, #e33d2a), color-stop(38%, #e33d2a), color-stop(39%, #fff), color-stop(39%, #fff), color-stop(40%, #e33d2a), color-stop(58%, #e33d2a), color-stop(59%, #fff), color-stop(59%, #fff), color-stop(60%, #e33d2a), color-stop(78%, #e33d2a), color-stop(79%, #fff), color-stop(79%, #fff), color-stop(80%, #e33d2a), to(#e33d2a));background:linear-gradient(to right, #e33d2a 0%, #e33d2a 18%, #fff 19%, #fff 19%, #e33d2a 20%, #e33d2a 38%, #fff 39%, #fff 39%, #e33d2a 40%, #e33d2a 58%, #fff 59%, #fff 59%, #e33d2a 60%, #e33d2a 78%, #fff 79%, #fff 79%, #e33d2a 80%, #e33d2a 100%)}.length-indicator-wrapper input:focus+.length-indicator,.length-indicator-wrapper textarea:focus+.length-indicator{display:block}.length-indicator-wrapper .length-count{font-size:12px;position:absolute;top:-17px;right:0;color:#afafaf}.tag-editor{overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;padding:7px 80px 7px 10px;cursor:text;-webkit-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;-webkit-transition:border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;border:1px solid #e5e5e5;border-radius:3px;background:#fff;-webkit-box-shadow:inset 0 1px 6px rgba(0,0,0,0.08);box-shadow:inset 0 1px 6px rgba(0,0,0,0.08)}.tag-editor>li{line-height:inherit;position:relative;float:left;margin:3px 10px 3px 0;padding:3px 5px;cursor:pointer;white-space:nowrap;color:#85878b;border-radius:2px;background:#e9e9ea}.tag-editor>li:nth-child(1){margin:0;padding:0;border-color:transparent;background:transparent}.tag-editor div{float:left;padding:0 4px}.tag-editor .placeholder{color:#bbb}.tag-editor-hidden-src{position:absolute !important;left:-99999px}.tag-editor .tag-editor-spacer{display:none}.tag-editor ::-ms-clear{display:none}.tag-editor .tag-editor-tag input[type=text]{margin:0;padding:0;cursor:text;border:0;outline:none;background:none;-webkit-box-shadow:none !important;box-shadow:none !important}.tag-editor .tag-editor-tag.active+.tag-editor-delete,.tag-editor .tag-editor-tag.active+.tag-editor-delete i{visibility:hidden;cursor:text}.tag-editor .tag-editor-delete i{line-height:18px;display:inline-block}.tag-editor .tag-editor-delete i:before{font-size:16px;font-style:normal;content:'×'}.tag-editor .tag-editor-delete:hover i:before{color:#000 !important}.tag-editor>li.selected-fk{color:#000;border-color:#fbbc05;background:#fbbc05}.tag-editor>li.bad-fk{color:#e93f30;background:#fdeae8}.tag-editor>li.bad-fk.selected-fk{color:#fdeae8;background:#e93f30}.tag-editor>li.ok-fk{color:#fbbc05;background:#fef2ce}.tag-editor>li.ok-fk.selected-fk{color:#fef2ce;background:#fbbc05}.tag-editor>li.good-fk{color:#58bb58;background:#e9f6e9}.tag-editor>li.good-fk.selected-fk{color:#e9f6e9;background:#58bb58}.tag-editor>li.selected-fk .tag-editor-tag.active input[type=text],.tag-editor>li.selected-fk .tag-editor-delete:hover i:before{color:#fff}.tag-editor>li:nth-child(2):before,.rank-math-keywords-fields>div:nth-child(1):before{font-family:'dashicons';font-size:7px;line-height:12px;position:absolute;top:-4px;left:-6px;width:12px;content:'\f155';text-align:center;color:#fff;border:1px solid #fff;border-radius:50%;background:#4285f4}.cmb2-wrap .cmb2-id-rank-math-focus-keyword{padding-top:10px}.cmb2-wrap .cmb2-id-rank-math-focus-keyword .cmb-th{width:100%;margin-bottom:10px}.cmb2-wrap .cmb2-id-rank-math-focus-keyword .cmb-td{width:100%}.cmb2-wrap .cmb2-id-rank-math-focus-keyword .notice{margin:20px 0 0;background:#fefcee}.cmb2-wrap .cmb2-id-rank-math-focus-keyword .cmb-td{position:relative}.rank-math-keywords-fields>div{position:relative}.rank-math-keywords-fields>div:nth-child(1):before{top:3px;left:16px}.ui-autocomplete{font-size:14px;position:absolute;top:0;left:0;cursor:default}.ui-autocomplete.ui-autocomplete-loading{background:none}.ui-autocomplete.ui-widget-content{z-index:1111111}.ui-front{z-index:9999}.ui-menu{display:block;margin:0;padding:1px;list-style:none;outline:none}.ui-menu .ui-menu-item a{line-height:1.4;display:block;min-height:0;padding:2px .4em;text-decoration:none}.ui-widget-content{color:#555;border:1px solid #bbb;background:#fff}.ui-widget-content:empty{display:none}.ui-widget-content a{color:#46799b}.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-focus,.ui-widget-header .ui-state-hover{background:#e0eaf1}.ui-helper-hidden-accessible{display:none}.rank-math-seo-score{font-weight:600;position:absolute;top:1px;right:1px;-webkit-box-sizing:border-box;box-sizing:border-box;width:105px;padding:13.5px 15px;text-align:center;border-radius:0 3px 3px 0;background:#f1f1f1}.rank-math-seo-score.misc-pub-section{position:relative;top:auto;right:auto;width:100%;padding:13.5px 12px;text-align:left;border-radius:0}.rank-math-seo-score.misc-pub-section .dashicons{font-size:18px;margin-right:2px}.rank-math-seo-score.good-fk{color:#58bb58;background:#e9f6e9}.rank-math-seo-score.ok-fk{color:#ca9703;background:#fef2ce}.rank-math-seo-score.bad-fk{color:#e93f30;background:#fdeae8}.cmb2-wrap .cmb2-id-rank-math-pillar-content .cmb-th{display:none}.cmb2-wrap .cmb2-id-rank-math-pillar-content .cmb-td{width:100%}.rank-math-primary-term-li{position:relative;display:block}.rank-math-primary-term-li .rank-math-tooltip{position:absolute;right:0;display:none}.rank-math-primary-term-li .rank-math-tooltip>span{top:50%;right:32px;bottom:auto;left:auto;width:110px;-webkit-transform:translate3d(-70%, -50%, 0);transform:translate3d(-70%, -50%, 0)}.rank-math-primary-term-li .rank-math-tooltip>span:after{content:'';-webkit-transform:translate3d(0, -50%, 0);transform:translate3d(0, -50%, 0);top:50%;right:-8px;left:auto;border-style:solid;height:0;width:0;border-color:transparent transparent transparent #555d66;border-width:7px 0 7px 8px}.rank-math-primary-term-li .rank-math-tooltip:hover span{bottom:auto;-webkit-transform:translate3d(0, -50%, 0);transform:translate3d(0, -50%, 0);opacity:1}.rank-math-primary-term-li.term-checked>label>.rank-math-tooltip{display:inline-block}.rank-math-compare-keywords-trigger{float:right;margin-top:-10px;margin-bottom:5px;text-decoration:none;color:#069de3}.rank-math-compare-keywords-wrapper .media-modal{top:10%;right:10%;bottom:10%;left:10%}.rank-math-compare-keywords-wrapper .aligncenter{text-align:center}.rank-math-compare-keywords-wrapper .media-frame-menu{width:300px}.rank-math-compare-keywords-wrapper .media-frame-content,.rank-math-compare-keywords-wrapper .media-frame-title{left:300px}.rank-math-compare-keywords-wrapper h1{line-height:50px;padding:0 16px}.rank-math-compare-keywords-wrapper .widefat{width:240px;margin:8px 10px 8px 20px}.rank-math-compare-keywords-wrapper .button-link.remove-keyword{margin-top:10px;padding:0;text-decoration:none;-webkit-box-shadow:none;box-shadow:none}.rank-math-compare-keywords-wrapper .button-primary{width:260px;margin:15px auto}.rank-math-compare-keywords-wrapper .button-secondary+.button-secondary{margin-left:10px}.rank-math-compare-keywords-wrapper .attachments-browser iframe{position:relative;overflow:hidden;margin-top:10px;height:450px;width:100%}.cmb2-id-rank-math-pillar-content .cmb-th label{visibility:hidden}.rank-math-serp-group li:before,.rank-math-serp-group.state-closed .group-status:before{font-family:dashicons;font-size:18px;line-height:1;float:left;margin:4px 10px 0 -30px;content:'\f335';color:#fff;border:1px solid #eac0c2;border-radius:50em;background:#eac0c2;height:18px;width:18px}.rank-math-serp-group .test-ok:before,.rank-math-serp-group .test-gallery:before,.rank-math-serp-group.state-closed .group-status.passed:before{content:'\f147';border-color:#58bb58;background:#58bb58}.rank-math-serp-checklist .group-handle{position:relative;padding:15px 20px;cursor:pointer;background:#ededee}.rank-math-serp-checklist h4{margin:0;color:#23282d}.rank-math-serp-checklist .group-handlediv{cursor:pointer;-webkit-transform:translateY(-50%);transform:translateY(-50%);border:0;background:0;position:absolute;top:50%;right:10px}.rank-math-serp-checklist .group-handlediv:focus{outline:0;-webkit-box-shadow:none;box-shadow:none}.rank-math-serp-group{margin-top:20px;background:#f5f5f5}.rank-math-serp-group:first-of-type{margin-top:0}.rank-math-serp-group ul{padding:15px 20px}.rank-math-serp-group li{font-size:15px;line-height:28px;position:relative;clear:both;padding-left:30px;color:#444}.rank-math-serp-group li section{display:none}.rank-math-serp-group .test-ok .rank-math-tooltip,.rank-math-serp-group .test-gallery .rank-math-tooltip{display:none}.rank-math-serp-group .test-fail,.rank-math-serp-group .test-empty{color:#a0a0a0}.rank-math-serp-group .rank-math-tooltip{top:4px;right:-2px}.rank-math-serp-group .toggle-indicator:before{font:normal 20px/1 dashicons;display:inline-block;content:'\f142';text-decoration:none !important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.rank-math-serp-group.state-closed ul{display:none}.rank-math-serp-group.state-closed .toggle-indicator:before{content:'\f140' !important}.rank-math-serp-group.state-closed .group-status{float:left}.rank-math-serp-group.state-closed .group-status:before{margin:0 10px 0 0}.rank-math-serp-group li.seo-check-calculateFleschReading.okay:before,.rank-math-serp-group li.seo-check-calculateFleschReading.fairlyDifficult:before{border-color:#ffbe5f;background:#ffbe5f}.rank-math-serp-group li.seo-check-calculateFleschReading.difficult:before{border-color:#eac0c2;background:#eac0c2}#setting-panel-richsnippet .cmb-row-50,#setting-panel-richsnippet .cmb-row-33{vertical-align:top;border-top:1px solid #e9e9e9;border-bottom:0}#setting-panel-richsnippet .cmb2-id-rank-math-snippet-music-type{border-top:0}#setting-panel-richsnippet .cmb2-id-rank-math-snippet-music-type .cmb-th,#setting-panel-richsnippet .cmb2-id-rank-math-snippet-music-type .cmb-td{margin-left:0;padding:0}#setting-panel-richsnippet .cmb2-id-rank-math-snippet-recipe-ingredients,#setting-panel-richsnippet .cmb2-id-rank-math-snippet-recipe-instructions{border-top:1px solid #e9e9e9}#setting-panel-richsnippet .cmb2-id-rank-math-snippet-recipe-instruction-type{border-top:1px solid #e9e9e9}#setting-panel-richsnippet .cmb2-id-rank-math-snippet-recipe-single-instructions,#setting-panel-richsnippet .cmb2-id-rank-math-snippet-recipe-instruction-name,#setting-panel-richsnippet .cmb2-id-rank-math-snippet-recipe-instructions{border-top:none}#setting-panel-richsnippet .notice-warning{margin:10px 0 0;background-color:#fefcee}#setting-panel-social .rank-math-tab{padding:30px 0 0}#setting-panel-social .rank-math-social-preview+.notice{margin-top:20px}#setting-panel-social .cmb-row.cmb-row-33{vertical-align:top;min-height:118px}.rank-math-social-preview-button{font-size:13px;display:inline-block;padding:4px 8px;text-decoration:none;text-transform:uppercase;color:#555555;border:0;outline:none;background:#ededee;-webkit-box-shadow:none !important;box-shadow:none !important}.rank-math-social-preview-button .dashicons{position:relative;top:-2px}.open .rank-math-social-preview-button{color:#fff;background:#069de3}.rank-math-social-preview-item{display:none;padding:30px}.rank-math-social-preview-item-wrapper{overflow:hidden;width:474px;max-width:100%;margin:auto;background:#fff;border:1px solid;border-radius:0 0 3px 3px;border-color:#dadada #dadada #ccc;-webkit-box-sizing:border-box;box-sizing:border-box}.rank-math-social-preview-item .error-msg{width:528px;max-width:100%;margin:auto;padding-top:10px;display:none;line-height:1}.rank-math-social-preview-item .error-msg.show{display:block}.rank-math-social-preview-image{line-height:0;position:relative;z-index:1}.rank-math-social-preview-image img{display:none;max-width:100%;height:100%;min-height:initial}.rank-math-social-preview-image-overlay{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%, -50%) scale(0.22126);transform:translate(-50%, -50%) scale(0.22126)}.rank-math-social-preview-image .error-msg{display:none;line-height:1}.rank-math-social-preview .rank-math-social-preview-caption{font-size:12px;background:#f2f3f5;padding:10px 10px 5px;color:#1d2129}.rank-math-social-preview .rank-math-social-preview-title{font-size:16px;font-weight:600;line-height:22px;margin:0 0 8px;padding:0;letter-spacing:normal;word-wrap:break-word}.rank-math-social-preview-description,.rank-math-social-preview-publisher{line-height:16px;margin:0}.rank-math-social-preview-publisher{font-size:12px;font-weight:normal;padding-bottom:5px;color:#90949c}.rank-math-social-preview-publisher.facebook{text-transform:uppercase}.rank-math-social-preview-social-meta{display:none;width:474px;margin:0 auto;clear:both;display:block;position:relative;margin-bottom:15px}.rank-math-social-preview-social-meta .social-profile-image{width:48px;height:48px;background:#dcc7c7;border-radius:50%;float:left;position:absolute;left:-58px}.rank-math-social-preview-social-meta .social-name{color:#14171a;font-size:14px;font-weight:bold}.rank-math-social-preview-social-meta .social-username,.rank-math-social-preview-social-meta .social-time{font-size:14px;color:#657786;font-weight:normal;margin-left:3px}.rank-math-social-preview-social-meta .social-time{margin-left:5px}.rank-math-social-preview-social-meta .social-time:before{content:"\00B7";margin-right:5px}.rank-math-social-preview-social-meta .social-text{margin-top:5px}.rank-math-social-preview-facebook .rank-math-social-preview-button strong:before{content:attr(data-facebook)}.rank-math-social-preview-facebook .facebook-thumbnail{display:block}.rank-math-social-preview-facebook .no-facebook-image .facebook-thumbnail{display:none}.rank-math-social-preview-facebook .rank-math-social-preview-social-meta.twitter-meta{display:none}.rank-math-social-preview-facebook .rank-math-social-preview-description{overflow:hidden;max-height:1.3em;margin-bottom:2px;white-space:nowrap;text-overflow:ellipsis}.rank-math-social-preview-facebook .rank-math-social-preview-social-meta.facebook-meta{display:block;border:1px solid #dadada;border-bottom:0;border-radius:3px 3px 0;padding:12px;margin-bottom:0;-webkit-box-sizing:border-box;box-sizing:border-box}.rank-math-social-preview-facebook .rank-math-social-preview-social-meta.facebook-meta .social-profile-image{width:40px;height:40px;left:auto;position:relative;margin-right:10px;margin-left:-2px}.rank-math-social-preview-facebook .rank-math-social-preview-social-meta.facebook-meta .social-name{color:#365899;margin-bottom:3px}.rank-math-social-preview-facebook .rank-math-social-preview-social-meta.facebook-meta .social-time:before{display:none}.rank-math-social-preview-facebook .rank-math-social-preview-social-meta.facebook-meta .social-time span:first-child:after{content:"\00B7";margin-right:3px;margin-left:5px}.rank-math-social-preview-facebook .rank-math-social-preview-social-meta.facebook-meta .dashicons.dashicons-admin-site{font-size:14px;line-height:17px}.rank-math-social-preview-facebook .twitter{display:none}.rank-math-social-preview-twitter.app,.rank-math-social-preview-twitter.player{display:none !important}.rank-math-social-preview-twitter .rank-math-social-preview-item-wrapper{max-width:100%;border:1px solid rgba(136,153,166,0.5);border-radius:10px;clear:both}.rank-math-social-preview-twitter .rank-math-social-preview-item-wrapper .twitter-thumbnail{display:block;max-width:100%}.rank-math-social-preview-twitter .rank-math-social-preview-item-wrapper .rank-math-social-preview-caption{background:#ffffff}.rank-math-social-preview-twitter .rank-math-social-preview-item-wrapper:hover{background:#F5F8FA}.rank-math-social-preview-twitter .rank-math-social-preview-item-wrapper:hover .rank-math-social-preview-caption{background:#F5F8FA}.rank-math-social-preview-twitter .rank-math-social-preview-title{font:normal normal bold 14px/1.4 Helvetica,Roboto,'Segoe UI',Calibri,sans-serif;overflow:hidden;max-height:1.3em;margin-bottom:2px;white-space:nowrap;text-overflow:ellipsis}.rank-math-social-preview-twitter .rank-math-social-preview-description{font-size:14px;line-height:20px;overflow:hidden;max-height:4.5em;margin-top:.32333em}.rank-math-social-preview-twitter .rank-math-social-preview-publisher{padding-top:5px}.rank-math-social-preview-twitter .rank-math-social-preview-publisher.facebook{display:none}.rank-math-social-preview-twitter .no-twitter-image .twitter-thumbnail{display:none}.rank-math-social-preview-twitter .rank-math-social-preview-button strong:before{content:attr(data-twitter)}.rank-math-social-preview-twitter.summary_card .rank-math-social-preview-image{float:left}.rank-math-social-preview-twitter.summary_card .rank-math-social-preview-image img{height:125px;width:125px}.rank-math-social-preview-twitter.summary_card .rank-math-social-preview-caption{overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;max-height:125px;padding:5px 0 0 15px}.rank-math-social-preview-twitter .rank-math-social-preview-social-meta.facebook-meta{display:none}.rank-math-social-preview-twitter .rank-math-social-preview-social-meta.twitter-meta{display:block}.suggestion-item{overflow:hidden;margin-bottom:5px;padding-bottom:5px;border-bottom:1px dotted #e5e5e5}.suggestion-item a{text-decoration:none;-webkit-box-shadow:none !important;box-shadow:none !important}.suggestion-item .suggestion-actions{float:right;margin-left:5px}.suggestion-item .dashicons{margin-top:5px;cursor:pointer}#rank_math_keyword_density{font-weight:600;display:none;float:right;cursor:pointer;color:#888}#rank_math_keyword_density span{float:right}#rank_math_keyword_density .inner-wrapper{position:absolute;z-index:1;right:30px;margin-top:8px;padding:5px 15px;background:#fff;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1)}#rank_math_keyword_density .inner-wrapper ul{margin-top:15px}#rank_math_keyword_density.state-closed span:before{content:'\f140' !important}#rank_math_keyword_density.state-closed .inner-wrapper{display:none}body.rtl .rank-math-metabox-wrap .rank-math-tabs-navigation:not(.social-tabs-navigation) a{float:right;margin-right:-1px;margin-left:0;padding-right:8px;padding-left:12px}body.rtl .rank-math-metabox-wrap .rank-math-tabs-navigation:not(.social-tabs-navigation) a .dashicons,body.rtl .rank-math-metabox-wrap .rank-math-tabs-navigation:not(.social-tabs-navigation) a .fa{margin-right:0;margin-left:5px}body.rtl .rank-math-metabox-wrap .social-tabs-navigation a .dashicons{margin-right:0;margin-left:8px}body.rtl .serp-preview .group .serp-close{left:10px;right:auto}body.rtl .serp-preview .rank-math-variables-wrap input,body.rtl .serp-preview .rank-math-variables-wrap textarea{padding-right:0.6em !important;padding-left:50px}body.rtl .serp-preview .length-indicator-wrapper .length-count{left:0;right:auto}body.rtl .serp-preview .length-indicator-wrapper .length-indicator{left:60px;right:auto}body.rtl .tag-editor{padding:7px 10px 7px 80px}body.rtl .tag-editor>li{float:right;margin-right:0;margin-left:10px}body.rtl .tag-editor>li:nth-child(2):before{right:-6px;left:auto}body.rtl .tag-editor div{float:right}body.rtl .tag-editor-hidden-src{right:-99999px}body.rtl .rank-math-seo-score{right:auto;left:1px}body.rtl .rank-math-serp-checklist .group-handlediv{right:auto;left:10px}body.rtl .rank-math-serp-group.state-closed .group-status{float:right}body.rtl .rank-math-serp-group.state-closed .group-status:before{margin:0 0 0 10px}body.rtl .rank-math-serp-group li{padding-left:0;padding-right:30px}body.rtl .rank-math-serp-group li:before{float:right;margin:4px -30px 0 10px}body.rtl .rank-math-primary-term-li .rank-math-make-primary,body.rtl .rank-math-primary-term-li .text-primary{right:auto;left:0}body.rtl .rank-math-primary-term-li .rank-math-tooltip{right:auto;left:0}body.rtl .rank-math-primary-term-li .rank-math-tooltip>span{right:auto;left:32px;-webkit-transform:translate3d(70%, -50%, 0);transform:translate3d(70%, -50%, 0)}body.rtl .rank-math-primary-term-li .rank-math-tooltip>span:after{left:-8px;right:auto;top:30%;-webkit-transform:rotate(180deg);transform:rotate(180deg)}body.rtl .rank-math-primary-term-li .rank-math-tooltip:hover>span{-webkit-transform:translate3d(0, -50%, 0);transform:translate3d(0, -50%, 0)}body.rtl .suggestion-item .suggestion-actions{float:left;margin-right:5px}body.rtl input[type=checkbox]:checked:before{margin:-3px}body.rtl .postbox-container #side-sortables{overflow:hidden}.ask-review{text-align:center}.ask-review p{font-size:14px;margin-bottom:20px}.ask-review .stars-wrapper{line-height:60px;width:316px;margin:0 auto;margin-bottom:20px;border:1px solid #ddd;border-radius:6px}.ask-review .stars-wrapper .stars a{position:relative;top:9px;display:inline-block;height:40px;width:40px;text-decoration:none;color:#aaa}.ask-review .stars-wrapper .stars a span{font-size:40px;height:40px;width:40px}.ask-review .stars-wrapper .stars a.highlighted,.ask-review .stars-wrapper .stars a:hover{color:#f9cb12}.ask-review .stars-wrapper .face{float:right;width:70px;height:60px;border-left:1px solid #ddd;background:#fafafa}.smiley{position:relative;top:50%;left:50%;height:22px;width:22px;padding:12px;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);border-radius:100%;background:linear-gradient(135deg, #ffe919 0%, #fbc000 100%)}.mouth{position:absolute;bottom:18%;left:50%;-webkit-box-sizing:border-box;box-sizing:border-box;width:60%;height:30%;margin-left:-30%;-webkit-transition:all 300ms cubic-bezier(0.645, 0.045, 0.355, 1);transition:all 300ms cubic-bezier(0.645, 0.045, 0.355, 1);border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:22px;border-bottom-left-radius:22px;background:#b57700}.eyes{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;margin-top:15%;padding:0 1px;-webkit-transition:all 300ms cubic-bezier(0.645, 0.045, 0.355, 1);transition:all 300ms cubic-bezier(0.645, 0.045, 0.355, 1)}.eyes .eye{position:relative;float:left;height:5px;width:5px;border-radius:100%;background:#b57700}.eyes .eye:nth-of-type(2){float:right}.eyes .eye::after{position:absolute;top:-5px;left:2px;display:block;height:0;width:0;content:'';-webkit-transition:all 300ms cubic-bezier(0.645, 0.045, 0.355, 1);transition:all 300ms cubic-bezier(0.645, 0.045, 0.355, 1);-webkit-transform:rotate(0deg);transform:rotate(0deg);background:#fed800}.eyes .eye:first-of-type::after{right:5px;left:auto;-webkit-transform:rotate(0deg);transform:rotate(0deg)}.smiley.normal .mouth{bottom:25%;width:40%;height:10%;margin-left:-20%;border-top-left-radius:22px;border-top-right-radius:22px;border-bottom-right-radius:22px;border-bottom-left-radius:22px}.smiley.normal .eyes{margin-top:30%}.smiley.angry .mouth{bottom:25%;left:50%;width:40%;height:10%;margin-left:-20%;border-bottom:0;border-top-left-radius:100%;border-top-right-radius:100%;border-bottom-right-radius:0;border-bottom-left-radius:0}.smiley.happy .mouth{-webkit-animation:move-mouth-down .8s;animation:move-mouth-down .8s;-webkit-animation-delay:.3s;animation-delay:.3s}@-webkit-keyframes move-mouth-down{0%{bottom:18%}35%{bottom:16%}65%{bottom:16%}100%{bottom:18%}}@keyframes move-mouth-down{0%{bottom:18%}35%{bottom:16%}65%{bottom:16%}100%{bottom:18%}}.smiley.happy .eyes{-webkit-animation:move-eyes-down .8s;animation:move-eyes-down .8s;-webkit-animation-delay:.3s;animation-delay:.3s}@-webkit-keyframes move-eyes-down{0%{margin-top:15%}35%{margin-top:19%}65%{margin-top:19%}100%{margin-top:15%}}@keyframes move-eyes-down{0%{margin-top:15%}35%{margin-top:19%}65%{margin-top:19%}100%{margin-top:15%}}.smiley.happy .eye:nth-of-type(2){height:5px;margin-top:0;-webkit-animation:wink .8s;animation:wink .8s;-webkit-animation-delay:.3s;animation-delay:.3s}@-webkit-keyframes wink{0%{height:5px;margin-top:0}30%{height:2px;margin-top:1px}70%{height:2px;margin-top:1px}100%{height:5px;margin-top:0}}@keyframes wink{0%{height:5px;margin-top:0}30%{height:2px;margin-top:1px}70%{height:2px;margin-top:1px}100%{height:5px;margin-top:0}}.smiley.normal .eye{height:5px;margin-top:0;-webkit-animation:blink .6s;animation:blink .6s;-webkit-animation-delay:.3s;animation-delay:.3s}@-webkit-keyframes blink{0%{height:5px;margin-top:0}25%{height:2px;margin-top:1px}50%{height:5px;margin-top:0}75%{height:2px;margin-top:1px}100%{height:5px;margin-top:0}}@keyframes blink{0%{height:5px;margin-top:0}25%{height:2px;margin-top:1px}50%{height:5px;margin-top:0}75%{height:2px;margin-top:1px}100%{height:5px;margin-top:0}}.smiley.angry .eyes,.smiley.angry .mouth{-webkit-animation:move-angry-head .6s;animation:move-angry-head .6s;-webkit-animation-delay:.3s;animation-delay:.3s}@-webkit-keyframes move-angry-head{0%{-webkit-transform:translateX(0%);transform:translateX(0%)}20%{-webkit-transform:translateX(-20%);transform:translateX(-20%)}40%{-webkit-transform:translateX(15%);transform:translateX(15%)}60%{-webkit-transform:translateX(-10%);transform:translateX(-10%)}80%{-webkit-transform:translateX(5%);transform:translateX(5%)}100%{-webkit-transform:translateX(0%);transform:translateX(0%)}}@keyframes move-angry-head{0%{-webkit-transform:translateX(0%);transform:translateX(0%)}20%{-webkit-transform:translateX(-20%);transform:translateX(-20%)}40%{-webkit-transform:translateX(15%);transform:translateX(15%)}60%{-webkit-transform:translateX(-10%);transform:translateX(-10%)}80%{-webkit-transform:translateX(5%);transform:translateX(5%)}100%{-webkit-transform:translateX(0%);transform:translateX(0%)}}
|
6 |
-
|
7 |
-
/*# sourceMappingURL=metabox.css.map */
|
2 |
* Plugin: Rank Math
|
3 |
* URL: https://rankmath.com/wordpress/plugin/seo-suite/
|
4 |
* Name: metabox.css
|
5 |
+
*/#rank_math_metabox .inside{margin:0;padding:0}.rank-math-metabox-frame{position:relative;min-width:255px;max-width:1000px;margin-bottom:25px;border:1px solid #e5e5e5;background:#fff;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.04);box-shadow:0 1px 1px rgba(0,0,0,0.04)}.rank-math-metabox-frame-title{font-size:14px;line-height:1.4;margin:0;padding:8px 12px;border-bottom:1px solid #e5e5e5}.rank-math-metabox-wrap .rank-math-tabs-navigation:not(.social-tabs-navigation){padding:30px 20px 0;border-bottom:1px solid #e5e5e5;background:#fafafa}.rank-math-metabox-wrap .rank-math-tabs-navigation:not(.social-tabs-navigation) a{font-size:14px;font-weight:600;position:relative;float:left;-webkit-box-sizing:border-box;box-sizing:border-box;margin-left:7px;padding:8px 16px 4px 12px;white-space:nowrap;text-decoration:none;color:#555;border:1px solid #e6e6e6;border-bottom:0;outline:none;background:#f5f5f5;-webkit-box-shadow:none;box-shadow:none}@media (max-width: 768px){.rank-math-metabox-wrap .rank-math-tabs-navigation:not(.social-tabs-navigation) a{margin-left:-1px;padding:8px 12px 4px 8px}}.rank-math-metabox-wrap .rank-math-tabs-navigation:not(.social-tabs-navigation) a[href="#setting-panel-askreview"]{padding-right:12px;float:right;color:#e93f30}.rank-math-metabox-wrap .rank-math-tabs-navigation:not(.social-tabs-navigation) a .dashicons,.rank-math-metabox-wrap .rank-math-tabs-navigation:not(.social-tabs-navigation) a .fa{font-size:14px;line-height:inherit;min-width:20px;text-align:center}.rank-math-metabox-wrap .rank-math-tabs-navigation:not(.social-tabs-navigation) a.active{bottom:-1px;margin-top:-1px;padding-bottom:5px;color:#069de3;border-top-color:#069de3;background:#fff}.rank-math-metabox-wrap .social-tabs-navigation{display:inline-block;border-radius:3px;-webkit-box-shadow:0 1px 6px 0 rgba(35,40,45,0.18);box-shadow:0 1px 6px 0 rgba(35,40,45,0.18)}.rank-math-metabox-wrap .social-tabs-navigation-wrapper{padding-bottom:30px;text-align:center}.rank-math-metabox-wrap .social-tabs-navigation a{font-size:16px;float:left;-webkit-box-sizing:border-box;box-sizing:border-box;width:130px;padding:11px;text-decoration:none;color:#939393;border:1px solid #e5e5e5;outline:none;background:#efefef;-webkit-box-shadow:none;box-shadow:none}.rank-math-metabox-wrap .social-tabs-navigation a .dashicons{margin-right:8px}.rank-math-metabox-wrap .social-tabs-navigation .tab-facebook{border-right:0;border-radius:3px 0 0 3px}.rank-math-metabox-wrap .social-tabs-navigation .tab-facebook.tab-active{color:#fff;border-color:#3b5998;background:#3b5998}.rank-math-metabox-wrap .social-tabs-navigation .tab-twitter{border-left:0;border-radius:0 3px 3px 0}.rank-math-metabox-wrap .social-tabs-navigation .tab-twitter.tab-active{color:#fff;border-color:#55acee;background:#55acee}.rank-math-metabox-wrap .rank-math-tab{display:none;padding:30px}.serp-preview .highlight{pointer-events:none}.serp-preview-title:before{font-size:13px;font-weight:600;display:inline-block;padding-bottom:6px;content:attr(data-title);letter-spacing:.05em;text-transform:uppercase}.serp-preview-wrapper{position:relative;-webkit-transition:all .6s ease;transition:all .6s ease}.serp-preview-body{padding:15px 0;-webkit-transition:width .5s ease, padding .5s ease, margin .5s ease;transition:width .5s ease, padding .5s ease, margin .5s ease}.serp-preview-body .serp-star-rating{display:inline-block;position:relative;color:#ccc;margin-right:5px}.serp-preview-body .serp-star-rating .dashicons{font-size:16px;width:16px;height:16px}.serp-preview-body .serp-star-rating .serp-result{position:absolute;top:0;left:0;height:22px;overflow:hidden;white-space:nowrap;color:#e7711b}.serp-preview-body .cmb-row .cmb-td{width:100%;max-width:680px}.serp-preview-body .cmb-row .cmb-td .cmb2_textarea{width:100% !important}.serp-preview-footer{padding:15px 0}.serp-preview-footer .button.button-secondary{line-height:41px;padding:0 12px}.serp-preview-footer .button.button-secondary .dashicons{font-size:20px;line-height:41px}.serp-preview-bg{overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:opacity .5s ease, height .5s ease;transition:opacity .5s ease, height .5s ease;opacity:0;background-color:#fafafa;height:0;width:100%}.serp-preview-bg .serp-preview-input{position:relative;max-width:600px;pointer-events:none}.serp-preview-bg .serp-preview-input input{font:16px arial,sans-serif;padding:5px 9px 5px 16px;-webkit-transition:-webkit-box-shadow 200ms cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-box-shadow 200ms cubic-bezier(0.4, 0, 0.2, 1);transition:box-shadow 200ms cubic-bezier(0.4, 0, 0.2, 1);transition:box-shadow 200ms cubic-bezier(0.4, 0, 0.2, 1),-webkit-box-shadow 200ms cubic-bezier(0.4, 0, 0.2, 1);vertical-align:top;color:#000;border:none;border-radius:2px;outline:none;background-color:#fff;-webkit-box-shadow:0 2px 2px 0 rgba(0,0,0,0.16),0 0 0 1px rgba(0,0,0,0.08);box-shadow:0 2px 2px 0 rgba(0,0,0,0.16),0 0 0 1px rgba(0,0,0,0.08);height:44px;width:100%}.serp-preview-bg .serp-preview-input .serp-mike{position:absolute;top:0;right:50px;bottom:0;display:inline-block;width:24px;padding:0 2px 0 8px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACrElEQVR42u2Xz2sTQRSAX8VSb1K8iNqKooJH2Ux6Ksn+iPQqxZMIehJB0do/IMhmQWsvHr2KSEGk0tSLIoWIYNUKij20F2/N7iaUZnYT0kYzzhMKs0HDJiTdLcwHDwKZSd63781LBiQSSW9JZdkhzfKm1Rz9mjZp/W9YdEU3vXv4HsQZ40FtNG36q5rls//Ej4tmbSS2T15Mvp3ExOPmEMQNbBtMMEyoljcFcQN7PqyAlqNfIG7gYQ0tYNIaxA1MrJPY3wImbUqBKAXSFv0tBSIVMOkvKRDtGKWN/T6FdqRAxFNoWwpEPIXqUqBT6ALU/UVgu8GW4GD3f6f9TRDYNJTDrk7YbtiqUumHwIYoUJuHERDAS0r4CvgFECgbY+cFAR7KT+g1POmCKFDNw6WggHc3fBtVb4CAoyauBgXIG+g1Xh5mRAGah6cggBd11fK/h7lOprIs0H6uRl6KAo5O7kOv4QmPiwJ4Jqqv4FiwCtXjvD2+tRmfK6kZ/ygI2HritK0rDVGgrClJ6DWMwYC/AGuCBMYcIC2V0CzvjmbRz3j3xUjn6CfeYreUJ2wQkGD75INPX1mFfsEFrrcIYCvdhC4paWQakxajpJMr0C9YFg54i7AsClRmh9/xnr0NHcInzZStk2aLwAcGMAD9pPIazvFKVDD5rdnhJeHLX5RTyRPQHpz5o66emMc9wdlPtvA8wF7Aq2BUHh1525qEo5JtR1WeOXpickO9cJIpyuD6xJmhYiZ5ytWSl3mlnuOaf+2zDaLDXmJrSgZ/MYVEugo+gSh+FkSBa4yd5Ul87DZ5XpFl/AyIEjzYjkau8WqshU2cr13HPbgX4gJOD97n465GZlyVvC9mSKloKI2iTnbwNT+gBX54H+IaXAtxJzE3ycSAFqSAFJACUkAikXD+AHj5/wx2o5osAAAAAElFTkSuQmCC);background-repeat:no-repeat;background-position:right center;background-size:24px 24px}.serp-preview-bg .serp-preview-input .serp-search{line-height:46px;position:absolute;top:0;right:15px;bottom:0;height:46px;text-align:center;border:0;outline:0}.serp-preview-bg .serp-preview-input .serp-search svg{width:25px;height:46px;fill:#4285f4}.serp-preview-bg .serp-preview-menus{overflow:hidden;max-width:600px}.serp-preview-bg .serp-preview-menus ul{float:left;overflow:hidden;margin:0;padding:0;list-style:none}.serp-preview-bg .serp-preview-menus ul li{font-family:arial,sans-serif;font-size:13px;line-height:19px;float:left;height:15px;margin:0;padding:28px 16px 12px;color:#777}.serp-preview-bg .serp-preview-menus ul li.current{font-weight:bold;color:#1a73e8;border-bottom:3px solid #1a73e8}.serp-preview-bg .serp-preview-menus ul.menus-right{float:right}.serp-preview-bg .serp-preview-result-stats{font-family:arial,sans-serif;font-size:small;line-height:43px;margin:0 -20px;padding-right:20px;padding-left:20px;white-space:nowrap;text-overflow:ellipsis;color:#808080;background-color:#fff}.serp-preview-noindex{z-index:1;display:none;padding:15px 0;background:rgba(255,255,255,0.8);position:absolute;top:0;right:0;bottom:0;left:0}.serp-preview-noindex h3{font-weight:700;margin:0;letter-spacing:1px;text-transform:uppercase}.serp-preview-noindex p{font-size:14px;line-height:2;margin:5px 0;color:#000}.serp-preview .serp-description,.serp-preview .serp-title,.serp-preview .serp-url{font-family:arial, sans-serif;position:relative;z-index:1;display:block;overflow:hidden;width:100%;max-width:680px;margin:0;cursor:pointer}.serp-preview .serp-description:focus:before,.serp-preview .serp-description:hover:before,.serp-preview .serp-title:focus:before,.serp-preview .serp-title:hover:before,.serp-preview .serp-url:focus:before,.serp-preview .serp-url:hover:before{font-family:dashicons;z-index:-1;content:'\f464';text-align:right;background:#f0f1f3;position:absolute;top:0;right:0;bottom:0;left:0}.serp-preview .serp-description:empty:after,.serp-preview .serp-title:empty:after,.serp-preview .serp-url:empty:after{content:attr(data-empty-title)}.serp-preview .serp-title{font-size:18px;font-weight:normal;line-height:19px;white-space:nowrap;text-overflow:ellipsis;color:#1a0dab}.serp-preview .serp-url{font-size:14px;line-height:16px;margin:3px 0 5px;white-space:nowrap;text-overflow:ellipsis;color:#006621}.serp-preview .serp-description{font-size:13px;line-height:1.4;clear:left;word-wrap:break-word;color:#545454}.serp-preview .group{position:relative;min-height:10px}.serp-preview .group .cmb-row{display:none;padding:20px 0 !important;border:0}.serp-preview .group .serp-close{position:absolute;top:10px;right:10px;display:none;cursor:pointer}.serp-preview:not(.expanded-preview):not(.mobile-preview) .group.active{margin-top:20px;padding:30px 20px 20px;background:#f6f6f6}.serp-preview:not(.expanded-preview):not(.mobile-preview) .group.active .cmb-row{display:block}.serp-preview:not(.expanded-preview):not(.mobile-preview) .group.active .cmb-row.cmb2-id-rank-math-title .rank-math-variables-button{right:0}.serp-preview:not(.expanded-preview):not(.mobile-preview) .group.active .cmb-row.cmb2-id-rank-math-description .rank-math-variables-dropdown{top:60px}.serp-preview:not(.expanded-preview):not(.mobile-preview) .group.active .serp-close{display:block}.serp-preview:not(.expanded-preview):not(.mobile-preview) .group.active+.group,.serp-preview:not(.expanded-preview):not(.mobile-preview) .group+.group.active{margin-top:20px}.serp-preview:not(.expanded-preview):not(.mobile-preview) .group.active+.group+.serp-rating,.serp-preview:not(.expanded-preview):not(.mobile-preview) .group+.group.active+.serp-rating{display:none}.serp-preview .button{height:auto;padding:0 5px;outline:0}.serp-preview .button,.serp-preview .button .dashicons{font-size:15px;line-height:30px;height:auto}.serp-preview .button-secondary{margin-bottom:0;color:#818181;border-color:#e5e5e5;background:#fff !important;-webkit-box-shadow:0 1px 2px 0 #e5e5e5 !important;box-shadow:0 1px 2px 0 #e5e5e5 !important}.serp-preview .button-secondary.active,.serp-preview .button-secondary.active:hover{color:#fff;border-color:#0392d4;background:#069de3 !important}.serp-preview .button-secondary:hover{color:#069de3;border-color:#0392d4}.serp-preview-title .alignright{margin-top:-9px}.serp-preview.desktop-preview .serp-snippet-mobile{display:none}.serp-preview.desktop-preview .serp-snippet-data{color:#808080;line-height:18px;font-size:small;font-weight:normal;margin-bottom:3px}.serp-preview.desktop-preview .serp-snippet-data .serp-desktop-rating{float:left;margin-top:1px}.serp-preview.desktop-preview .serp-snippet-data .separator:first-child{display:none}.serp-preview.desktop-preview .serp-snippet-data .serp-event_name{color:#1a0dab;cursor:pointer}.serp-preview.desktop-preview .serp-snippet-data .serp-event_name:hover{text-decoration:underline}.serp-preview.desktop-preview .serp-snippet-data .serp-event_name,.serp-preview.desktop-preview .serp-snippet-data .serp-event_place{padding-left:15px}.serp-preview.desktop-preview .serp-preview-footer .alignright .dashicons{margin-right:0}.serp-preview.mobile-preview.expanded-preview .group:nth-child(2){margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #dfe1e5}.serp-preview.mobile-preview .serp-snippet-mobile{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;margin:8px -5px 0}.serp-preview.mobile-preview .serp-snippet-mobile .inner-wrapper{-webkit-box-flex:1;-ms-flex:1;flex:1;margin-left:5px;margin-right:5px}.serp-preview.mobile-preview .serp-snippet-mobile .inner-wrapper .serp-mobile-label{display:block;font-size:14px;line-height:20px;margin-bottom:4px;color:#202124;font-weight:500}.serp-preview.mobile-preview .serp-snippet-mobile .inner-wrapper .serp-rating-count{float:left}.serp-preview.mobile-preview .serp-snippet-mobile .inner-wrapper .serp-rating{float:left;margin-left:5px}.serp-preview.mobile-preview .serp-snippet-mobile .serp-rating-count{color:#808080}.serp-preview.mobile-preview .serp-snippet-data{display:none}.mobile-preview .serp-preview-title:before{content:attr(data-mobile)}.mobile-preview .serp-preview-bg{position:relative;overflow:visible;width:400px;max-width:100%;margin:auto;border-radius:8px;background-color:transparent;-webkit-box-shadow:0 1px 6px rgba(32,33,36,0.28);box-shadow:0 1px 6px rgba(32,33,36,0.28)}.mobile-preview .serp-preview-bg .serp-preview-input input{height:41px;border-bottom:1px solid rgba(0,0,0,0.12);border-radius:8px 8px 0 0;-webkit-box-shadow:none;box-shadow:none}.mobile-preview .serp-preview-bg .serp-preview-input .serp-mike{display:none}.mobile-preview .serp-preview-bg .serp-preview-input .serp-search{right:0;width:40px;height:40px;margin-right:-1px;padding:0;border:1px solid #3367d6;border-radius:0 8px 0 0;-webkit-border-top-right-radius:8px;background-color:#3b78e7;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.mobile-preview .serp-preview-bg .serp-preview-input .serp-search svg{fill:#fff}.mobile-preview .serp-preview-bg .serp-preview-menus ul{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;border-bottom-right-radius:8px;border-bottom-left-radius:8px}.mobile-preview .serp-preview-bg .serp-preview-menus ul li{font-size:12px;line-height:40px;height:40px;padding:0 16px;text-align:center;text-transform:uppercase;-webkit-box-flex:1;-ms-flex:1;flex:1}.mobile-preview .serp-preview-bg .serp-preview-menus ul li:last-child{display:none}.mobile-preview .serp-preview-bg .serp-preview-menus ul.menus-right{display:none}.mobile-preview .serp-preview-bg .serp-preview-result-stats{display:none}.mobile-preview .serp-preview-body{-webkit-box-sizing:border-box;box-sizing:border-box;width:400px;max-width:100%;margin:auto;padding-top:30px;word-wrap:break-word}.mobile-preview.expanded-preview .serp-preview-body{margin-top:10px;padding:20px;border-radius:8px;background-color:#fff;-webkit-box-shadow:0 1px 6px rgba(32,33,36,0.28);box-shadow:0 1px 6px rgba(32,33,36,0.28)}.expanded-preview .serp-description,.expanded-preview .serp-title,.expanded-preview .serp-url,.mobile-preview .serp-description,.mobile-preview .serp-title,.mobile-preview .serp-url{overflow:hidden;pointer-events:none}.expanded-preview .serp-preview-footer,.mobile-preview .serp-preview-footer{display:none}.expanded-preview.desktop-preview .serp-preview-footer{padding:15px 0}.expanded-preview.desktop-preview .serp-preview-wrapper{padding:0}.expanded-preview.desktop-preview .serp-preview-title:before{content:attr(data-desktop)}@media (min-width: 768px){.expanded-preview.desktop-preview .serp-preview-bg{height:auto;padding:15px 20px 0;opacity:1}.expanded-preview.desktop-preview .serp-preview-body{padding-left:20px}}.expanded-preview.mobile-preview .serp-preview-bg{height:auto;margin-top:20px;opacity:1}.noindex-preview .serp-preview-wrapper{position:relative}.noindex-preview .serp-preview-body{pointer-events:none;opacity:.2}.noindex-preview .serp-preview-noindex{display:-webkit-box;display:-ms-flexbox;display:flex;flex-direction:column;align-items:center;-webkit-box-align:center;-webkit-box-direction:normal;-webkit-box-orient:vertical;-webkit-box-pack:center;-ms-flex-align:center;-ms-flex-direction:column;-ms-flex-pack:center;justify-content:center}.noindex-preview .serp-preview-footer .alignright{display:none}body.rtl .serp-preview-bg .serp-preview-input input{padding-right:16px;padding-left:9px}body.rtl .serp-preview-bg .serp-preview-input .serp-search{right:auto;left:15px}body.rtl .serp-preview-bg .serp-preview-input .serp-mike{right:auto;left:50px;padding-right:8px;padding-left:2px}body.rtl .serp-preview-bg .serp-preview-menus ul,body.rtl .serp-preview-bg .serp-preview-menus li{float:right}body.rtl .serp-preview-bg .serp-preview-menus ul.menus-right,body.rtl .serp-preview-bg .serp-preview-menus li.menus-right{float:left}body.rtl .mobile-preview .serp-preview-bg .serp-search{left:0;border-radius:0;border-top-left-radius:8px}body.rtl .serp-preview .serp-description:focus:before,body.rtl .serp-preview .serp-description:hover:before,body.rtl .serp-preview .serp-title:focus:before,body.rtl .serp-preview .serp-title:hover:before,body.rtl .serp-preview .serp-url:focus:before,body.rtl .serp-preview .serp-url:hover:before{text-align:left}body.rtl .rank-math-variables-dropdown{right:auto;left:37px}.snippet-fields{padding:45px 0 15px}.length-indicator-wrapper{position:relative;display:block}.length-indicator-wrapper .length-indicator{overflow:hidden;border-radius:2px;background:-webkit-gradient(linear, left top, right top, from(#e33e2b), color-stop(18%, #f06818), color-stop(19%, #fff), color-stop(19%, #fff), color-stop(20%, #f16b17), color-stop(38%, #f1a104), color-stop(39%, #fff), color-stop(39%, #fff), color-stop(40%, #f1a404), color-stop(58%, #d9b507), color-stop(59%, #fff), color-stop(59%, #fff), color-stop(60%, #d4b509), color-stop(78%, #7bb02c), color-stop(79%, #fff), color-stop(79%, #fff), color-stop(80%, #76ae2e), to(#2da24c));background:linear-gradient(to right, #e33e2b 0%, #f06818 18%, #fff 19%, #fff 19%, #f16b17 20%, #f1a104 38%, #fff 39%, #fff 39%, #f1a404 40%, #d9b507 58%, #fff 59%, #fff 59%, #d4b509 60%, #7bb02c 78%, #fff 79%, #fff 79%, #76ae2e 80%, #2da24c 100%);position:absolute;top:-13px;right:60px;height:8px;width:180px}.length-indicator-wrapper .length-indicator span{position:absolute;z-index:11;background:#e0e0e0;height:100%;width:100%}.length-indicator-wrapper .length-indicator.invalid{background:-webkit-gradient(linear, left top, right top, from(#e33d2a), color-stop(18%, #e33d2a), color-stop(19%, #fff), color-stop(19%, #fff), color-stop(20%, #e33d2a), color-stop(38%, #e33d2a), color-stop(39%, #fff), color-stop(39%, #fff), color-stop(40%, #e33d2a), color-stop(58%, #e33d2a), color-stop(59%, #fff), color-stop(59%, #fff), color-stop(60%, #e33d2a), color-stop(78%, #e33d2a), color-stop(79%, #fff), color-stop(79%, #fff), color-stop(80%, #e33d2a), to(#e33d2a));background:linear-gradient(to right, #e33d2a 0%, #e33d2a 18%, #fff 19%, #fff 19%, #e33d2a 20%, #e33d2a 38%, #fff 39%, #fff 39%, #e33d2a 40%, #e33d2a 58%, #fff 59%, #fff 59%, #e33d2a 60%, #e33d2a 78%, #fff 79%, #fff 79%, #e33d2a 80%, #e33d2a 100%)}.length-indicator-wrapper input:focus+.length-indicator,.length-indicator-wrapper textarea:focus+.length-indicator{display:block}.length-indicator-wrapper .length-count{font-size:12px;position:absolute;top:-17px;right:0;color:#afafaf}.tag-editor{overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;padding:7px 80px 7px 10px;cursor:text;-webkit-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;-webkit-transition:border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;border:1px solid #e5e5e5;border-radius:3px;background:#fff;-webkit-box-shadow:inset 0 1px 6px rgba(0,0,0,0.08);box-shadow:inset 0 1px 6px rgba(0,0,0,0.08)}.tag-editor>li{line-height:inherit;position:relative;float:left;margin:3px 10px 3px 0;padding:3px 5px;cursor:pointer;white-space:nowrap;color:#85878b;border-radius:2px;background:#e9e9ea}.tag-editor>li:nth-child(1){margin:0;padding:0;border-color:transparent;background:transparent}.tag-editor div{float:left;padding:0 4px}.tag-editor .placeholder{color:#bbb}.tag-editor-hidden-src{position:absolute !important;left:-99999px}.tag-editor .tag-editor-spacer{display:none}.tag-editor ::-ms-clear{display:none}.tag-editor .tag-editor-tag input[type=text]{margin:0;padding:0;cursor:text;border:0;outline:none;background:none;-webkit-box-shadow:none !important;box-shadow:none !important}.tag-editor .tag-editor-tag.active+.tag-editor-delete,.tag-editor .tag-editor-tag.active+.tag-editor-delete i{visibility:hidden;cursor:text}.tag-editor .tag-editor-delete i{line-height:18px;display:inline-block}.tag-editor .tag-editor-delete i:before{font-size:16px;font-style:normal;content:'×'}.tag-editor .tag-editor-delete:hover i:before{color:#000 !important}.tag-editor>li.selected-fk{color:#000;border-color:#fbbc05;background:#fbbc05}.tag-editor>li.bad-fk{color:#e93f30;background:#fdeae8}.tag-editor>li.bad-fk.selected-fk{color:#fdeae8;background:#e93f30}.tag-editor>li.ok-fk{color:#fbbc05;background:#fef2ce}.tag-editor>li.ok-fk.selected-fk{color:#fef2ce;background:#fbbc05}.tag-editor>li.good-fk{color:#58bb58;background:#e9f6e9}.tag-editor>li.good-fk.selected-fk{color:#e9f6e9;background:#58bb58}.tag-editor>li.selected-fk .tag-editor-tag.active input[type=text],.tag-editor>li.selected-fk .tag-editor-delete:hover i:before{color:#fff}.tag-editor>li:nth-child(2):before,.rank-math-keywords-fields>div:nth-child(1):before{font-family:'dashicons';font-size:7px;line-height:12px;position:absolute;top:-4px;left:-6px;width:12px;content:'\f155';text-align:center;color:#fff;border:1px solid #fff;border-radius:50%;background:#4285f4}.cmb2-wrap .cmb2-id-rank-math-focus-keyword{padding-top:10px}.cmb2-wrap .cmb2-id-rank-math-focus-keyword .cmb-th{width:100%;margin-bottom:10px}.cmb2-wrap .cmb2-id-rank-math-focus-keyword .cmb-td{width:100%}.cmb2-wrap .cmb2-id-rank-math-focus-keyword .notice{margin:20px 0 0;background:#fefcee}.cmb2-wrap .cmb2-id-rank-math-focus-keyword .cmb-td{position:relative}.rank-math-keywords-fields>div{position:relative}.rank-math-keywords-fields>div:nth-child(1):before{top:3px;left:16px}.ui-autocomplete{font-size:14px;position:absolute;top:0;left:0;cursor:default}.ui-autocomplete.ui-autocomplete-loading{background:none}.ui-autocomplete.ui-widget-content{z-index:1111111}.ui-front{z-index:9999}.ui-menu{display:block;margin:0;padding:1px;list-style:none;outline:none}.ui-menu .ui-menu-item a{line-height:1.4;display:block;min-height:0;padding:2px .4em;text-decoration:none}.ui-widget-content{color:#555;border:1px solid #bbb;background:#fff}.ui-widget-content a{color:#46799b}.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-focus,.ui-widget-header .ui-state-hover{background:#e0eaf1}.ui-helper-hidden-accessible{display:none}.rank-math-seo-score{font-weight:600;position:absolute;top:1px;right:1px;box-sizing:border-box;width:105px;padding:13.5px 15px;text-align:center;border-radius:0 3px 3px 0;background:#f1f1f1}.rank-math-seo-score.misc-pub-section{position:relative;top:auto;right:auto;width:100%;padding:13.5px 12px;text-align:left;border-radius:0}.rank-math-seo-score.misc-pub-section .dashicons{font-size:18px;margin-right:2px}.rank-math-seo-score.good-fk{color:#58bb58;background:#e9f6e9}.rank-math-seo-score.ok-fk{color:#ca9703;background:#fef2ce}.rank-math-seo-score.bad-fk{color:#e93f30;background:#fdeae8}.cmb2-wrap .cmb2-id-rank-math-pillar-content .cmb-th{display:none}.cmb2-wrap .cmb2-id-rank-math-pillar-content .cmb-td{width:100%}.rank-math-primary-term-li{position:relative;display:block}.rank-math-primary-term-li .rank-math-tooltip{position:absolute;right:0;display:none}.rank-math-primary-term-li .rank-math-tooltip>span{top:50%;right:32px;bottom:auto;left:auto;width:110px;-webkit-transform:translate3d(-70%, -50%, 0);transform:translate3d(-70%, -50%, 0)}.rank-math-primary-term-li .rank-math-tooltip>span:after{content:'';-webkit-transform:translate3d(0, -50%, 0);transform:translate3d(0, -50%, 0);top:50%;right:-8px;left:auto;border-style:solid;height:0;width:0;border-color:transparent transparent transparent #555d66;border-width:7px 0 7px 8px}.rank-math-primary-term-li .rank-math-tooltip:hover span{bottom:auto;-webkit-transform:translate3d(0, -50%, 0);transform:translate3d(0, -50%, 0);opacity:1}.rank-math-primary-term-li.term-checked>label>.rank-math-tooltip{display:inline-block}.rank-math-compare-keywords-trigger{float:right;margin-top:-10px;margin-bottom:5px;text-decoration:none;color:#069de3}.rank-math-compare-keywords-wrapper .media-modal{top:10%;right:10%;bottom:10%;left:10%}.rank-math-compare-keywords-wrapper .aligncenter{text-align:center}.rank-math-compare-keywords-wrapper .media-frame-menu{width:300px}.rank-math-compare-keywords-wrapper .media-frame-content,.rank-math-compare-keywords-wrapper .media-frame-title{left:300px}.rank-math-compare-keywords-wrapper h1{line-height:50px;padding:0 16px}.rank-math-compare-keywords-wrapper .widefat{width:240px;margin:8px 10px 8px 20px}.rank-math-compare-keywords-wrapper .button-link.remove-keyword{margin-top:10px;padding:0;text-decoration:none;-webkit-box-shadow:none;box-shadow:none}.rank-math-compare-keywords-wrapper .button-primary{width:260px;margin:15px auto}.rank-math-compare-keywords-wrapper .button-secondary+.button-secondary{margin-left:10px}.rank-math-compare-keywords-wrapper .attachments-browser iframe{position:relative;overflow:hidden;margin-top:10px;height:450px;width:100%}.cmb2-id-rank-math-pillar-content .cmb-th label{visibility:hidden}.rank-math-serp-group li:before,.rank-math-serp-group.state-closed .group-status:before{font-family:dashicons;font-size:18px;line-height:1;float:left;margin:4px 10px 0 -30px;content:'\f335';color:#fff;border:1px solid #eac0c2;border-radius:50em;background:#eac0c2;height:18px;width:18px}.rank-math-serp-group .test-ok:before,.rank-math-serp-group .test-gallery:before,.rank-math-serp-group.state-closed .group-status.passed:before{content:'\f147';border-color:#58bb58;background:#58bb58}.rank-math-serp-checklist .group-handle{position:relative;padding:15px 20px;cursor:pointer;background:#ededee}.rank-math-serp-checklist h4{margin:0;color:#23282d}.rank-math-serp-checklist .group-handlediv{cursor:pointer;-webkit-transform:translateY(-50%);transform:translateY(-50%);border:0;background:0;position:absolute;top:50%;right:10px}.rank-math-serp-checklist .group-handlediv:focus{outline:0;-webkit-box-shadow:none;box-shadow:none}.rank-math-serp-group{margin-top:20px;background:#f5f5f5}.rank-math-serp-group:first-of-type{margin-top:0}.rank-math-serp-group ul{padding:15px 20px}.rank-math-serp-group li{font-size:15px;line-height:28px;position:relative;clear:both;padding-left:30px;color:#444}.rank-math-serp-group li section{display:none}.rank-math-serp-group .test-ok .rank-math-tooltip,.rank-math-serp-group .test-gallery .rank-math-tooltip{display:none}.rank-math-serp-group .test-fail,.rank-math-serp-group .test-empty{color:#a0a0a0}.rank-math-serp-group .rank-math-tooltip{top:4px;right:-2px}.rank-math-serp-group .toggle-indicator:before{font:normal 20px/1 dashicons;display:inline-block;content:'\f142';text-decoration:none !important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.rank-math-serp-group.state-closed ul{display:none}.rank-math-serp-group.state-closed .toggle-indicator:before{content:'\f140' !important}.rank-math-serp-group.state-closed .group-status{float:left}.rank-math-serp-group.state-closed .group-status:before{margin:0 10px 0 0}.rank-math-serp-group li.seo-check-calculateFleschReading.okay:before,.rank-math-serp-group li.seo-check-calculateFleschReading.fairlyDifficult:before{border-color:#ffbe5f;background:#ffbe5f}.rank-math-serp-group li.seo-check-calculateFleschReading.difficult:before{border-color:#eac0c2;background:#eac0c2}#setting-panel-richsnippet .cmb-row-50,#setting-panel-richsnippet .cmb-row-33{vertical-align:top;border-top:1px solid #e9e9e9;border-bottom:0}#setting-panel-richsnippet .cmb2-id-rank-math-snippet-music-type{border-top:0}#setting-panel-richsnippet .cmb2-id-rank-math-snippet-music-type .cmb-th,#setting-panel-richsnippet .cmb2-id-rank-math-snippet-music-type .cmb-td{margin-left:0;padding:0}#setting-panel-richsnippet .cmb2-id-rank-math-snippet-recipe-ingredients,#setting-panel-richsnippet .cmb2-id-rank-math-snippet-recipe-instructions{border-top:1px solid #e9e9e9}#setting-panel-richsnippet .cmb2-id-rank-math-snippet-recipe-instruction-type{border-top:1px solid #e9e9e9}#setting-panel-richsnippet .cmb2-id-rank-math-snippet-recipe-single-instructions,#setting-panel-richsnippet .cmb2-id-rank-math-snippet-recipe-instruction-name,#setting-panel-richsnippet .cmb2-id-rank-math-snippet-recipe-instructions{border-top:none}#setting-panel-richsnippet .notice-warning{margin:10px 0 0;background-color:#fefcee}#setting-panel-social .rank-math-tab{padding:30px 0 0}#setting-panel-social .rank-math-social-preview+.notice{margin-top:20px}#setting-panel-social .cmb-row.cmb-row-33{vertical-align:top;min-height:118px}.rank-math-social-preview-button{font-size:13px;display:inline-block;padding:4px 8px;text-decoration:none;text-transform:uppercase;color:#555555;border:0;outline:none;background:#ededee;-webkit-box-shadow:none !important;box-shadow:none !important}.rank-math-social-preview-button .dashicons{position:relative;top:-2px}.open .rank-math-social-preview-button{color:#fff;background:#069de3}.rank-math-social-preview-item{display:none;padding:30px}.rank-math-social-preview-item-wrapper{overflow:hidden;width:474px;max-width:100%;margin:auto;background:#fff;border:1px solid;border-radius:0 0 3px 3px;border-color:#dadada #dadada #ccc;-webkit-box-sizing:border-box;box-sizing:border-box}.rank-math-social-preview-item .error-msg{width:528px;max-width:100%;margin:auto;padding-top:10px;display:none;line-height:1}.rank-math-social-preview-item .error-msg.show{display:block}.rank-math-social-preview-image{line-height:0;position:relative;z-index:1}.rank-math-social-preview-image img{display:none;max-width:100%;height:100%;min-height:initial}.rank-math-social-preview-image-overlay{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%, -50%) scale(0.22126);transform:translate(-50%, -50%) scale(0.22126)}.rank-math-social-preview-image .error-msg{display:none;line-height:1}.rank-math-social-preview .rank-math-social-preview-caption{font-size:12px;background:#f2f3f5;padding:10px 10px 5px;color:#1d2129}.rank-math-social-preview .rank-math-social-preview-title{font-size:16px;font-weight:600;line-height:22px;margin:0 0 8px;padding:0;letter-spacing:normal;word-wrap:break-word}.rank-math-social-preview-description,.rank-math-social-preview-publisher{line-height:16px;margin:0}.rank-math-social-preview-publisher{font-size:12px;font-weight:normal;padding-bottom:5px;color:#90949c}.rank-math-social-preview-publisher.facebook{text-transform:uppercase}.rank-math-social-preview-social-meta{display:none;width:474px;margin:0 auto;clear:both;display:block;position:relative;margin-bottom:15px}.rank-math-social-preview-social-meta .social-profile-image{width:48px;height:48px;background:#dcc7c7;border-radius:50%;float:left;position:absolute;left:-58px}.rank-math-social-preview-social-meta .social-name{color:#14171a;font-size:14px;font-weight:bold}.rank-math-social-preview-social-meta .social-username,.rank-math-social-preview-social-meta .social-time{font-size:14px;color:#657786;font-weight:normal;margin-left:3px}.rank-math-social-preview-social-meta .social-time{margin-left:5px}.rank-math-social-preview-social-meta .social-time:before{content:"\00B7";margin-right:5px}.rank-math-social-preview-social-meta .social-text{margin-top:5px}.rank-math-social-preview-facebook .rank-math-social-preview-button strong:before{content:attr(data-facebook)}.rank-math-social-preview-facebook .facebook-thumbnail{display:block}.rank-math-social-preview-facebook .no-facebook-image .facebook-thumbnail{display:none}.rank-math-social-preview-facebook .rank-math-social-preview-social-meta.twitter-meta{display:none}.rank-math-social-preview-facebook .rank-math-social-preview-description{overflow:hidden;max-height:1.3em;margin-bottom:2px;white-space:nowrap;text-overflow:ellipsis}.rank-math-social-preview-facebook .rank-math-social-preview-social-meta.facebook-meta{display:block;border:1px solid #dadada;border-bottom:0;border-radius:3px 3px 0;padding:12px;margin-bottom:0;-webkit-box-sizing:border-box;box-sizing:border-box}.rank-math-social-preview-facebook .rank-math-social-preview-social-meta.facebook-meta .social-profile-image{width:40px;height:40px;left:auto;position:relative;margin-right:10px;margin-left:-2px}.rank-math-social-preview-facebook .rank-math-social-preview-social-meta.facebook-meta .social-name{color:#365899;margin-bottom:3px}.rank-math-social-preview-facebook .rank-math-social-preview-social-meta.facebook-meta .social-time:before{display:none}.rank-math-social-preview-facebook .rank-math-social-preview-social-meta.facebook-meta .social-time span:first-child:after{content:"\00B7";margin-right:3px;margin-left:5px}.rank-math-social-preview-facebook .rank-math-social-preview-social-meta.facebook-meta .dashicons.dashicons-admin-site{font-size:14px;line-height:17px}.rank-math-social-preview-facebook .twitter{display:none}.rank-math-social-preview-twitter.app,.rank-math-social-preview-twitter.player{display:none !important}.rank-math-social-preview-twitter .rank-math-social-preview-item-wrapper{max-width:100%;border:1px solid rgba(136,153,166,0.5);border-radius:10px;clear:both}.rank-math-social-preview-twitter .rank-math-social-preview-item-wrapper .twitter-thumbnail{display:block;max-width:100%}.rank-math-social-preview-twitter .rank-math-social-preview-item-wrapper .rank-math-social-preview-caption{background:#ffffff}.rank-math-social-preview-twitter .rank-math-social-preview-item-wrapper:hover{background:#F5F8FA}.rank-math-social-preview-twitter .rank-math-social-preview-item-wrapper:hover .rank-math-social-preview-caption{background:#F5F8FA}.rank-math-social-preview-twitter .rank-math-social-preview-title{font:normal normal bold 14px/1.4 Helvetica,Roboto,'Segoe UI',Calibri,sans-serif;overflow:hidden;max-height:1.3em;margin-bottom:2px;white-space:nowrap;text-overflow:ellipsis}.rank-math-social-preview-twitter .rank-math-social-preview-description{font-size:14px;line-height:20px;overflow:hidden;max-height:4.5em;margin-top:.32333em}.rank-math-social-preview-twitter .rank-math-social-preview-publisher{padding-top:5px}.rank-math-social-preview-twitter .rank-math-social-preview-publisher.facebook{display:none}.rank-math-social-preview-twitter .no-twitter-image .twitter-thumbnail{display:none}.rank-math-social-preview-twitter .rank-math-social-preview-button strong:before{content:attr(data-twitter)}.rank-math-social-preview-twitter.summary_card .rank-math-social-preview-image{float:left}.rank-math-social-preview-twitter.summary_card .rank-math-social-preview-image img{height:125px;width:125px}.rank-math-social-preview-twitter.summary_card .rank-math-social-preview-caption{overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;max-height:125px;padding:5px 0 0 15px}.rank-math-social-preview-twitter .rank-math-social-preview-social-meta.facebook-meta{display:none}.rank-math-social-preview-twitter .rank-math-social-preview-social-meta.twitter-meta{display:block}.suggestion-item{overflow:hidden;margin-bottom:5px;padding-bottom:5px;border-bottom:1px dotted #e5e5e5}.suggestion-item a{text-decoration:none;-webkit-box-shadow:none !important;box-shadow:none !important}.suggestion-item .suggestion-actions{float:right;margin-left:5px}.suggestion-item .dashicons{margin-top:5px;cursor:pointer}#rank_math_keyword_density{font-weight:600;display:none;float:right;cursor:pointer;color:#888}#rank_math_keyword_density span{float:right}#rank_math_keyword_density .inner-wrapper{position:absolute;z-index:1;right:30px;margin-top:8px;padding:5px 15px;background:#fff;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1)}#rank_math_keyword_density .inner-wrapper ul{margin-top:15px}#rank_math_keyword_density.state-closed span:before{content:'\f140' !important}#rank_math_keyword_density.state-closed .inner-wrapper{display:none}body.rtl .rank-math-metabox-wrap .rank-math-tabs-navigation:not(.social-tabs-navigation) a{float:right;margin-right:-1px;margin-left:0;padding-right:8px;padding-left:12px}body.rtl .rank-math-metabox-wrap .rank-math-tabs-navigation:not(.social-tabs-navigation) a .dashicons,body.rtl .rank-math-metabox-wrap .rank-math-tabs-navigation:not(.social-tabs-navigation) a .fa{margin-right:0;margin-left:5px}body.rtl .rank-math-metabox-wrap .social-tabs-navigation a .dashicons{margin-right:0;margin-left:8px}body.rtl .serp-preview .group .serp-close{left:10px;right:auto}body.rtl .serp-preview .rank-math-variables-wrap input,body.rtl .serp-preview .rank-math-variables-wrap textarea{padding-right:0.6em !important;padding-left:50px}body.rtl .serp-preview .length-indicator-wrapper .length-count{left:0;right:auto}body.rtl .serp-preview .length-indicator-wrapper .length-indicator{left:60px;right:auto}body.rtl .tag-editor{padding:7px 10px 7px 80px}body.rtl .tag-editor>li{float:right;margin-right:0;margin-left:10px}body.rtl .tag-editor>li:nth-child(2):before{right:-6px;left:auto}body.rtl .tag-editor div{float:right}body.rtl .tag-editor-hidden-src{right:-99999px}body.rtl .rank-math-seo-score{right:auto;left:1px}body.rtl .rank-math-serp-checklist .group-handlediv{right:auto;left:10px}body.rtl .rank-math-serp-group.state-closed .group-status{float:right}body.rtl .rank-math-serp-group.state-closed .group-status:before{margin:0 0 0 10px}body.rtl .rank-math-serp-group li{padding-left:0;padding-right:30px}body.rtl .rank-math-serp-group li:before{float:right;margin:4px -30px 0 10px}body.rtl .rank-math-primary-term-li .rank-math-make-primary,body.rtl .rank-math-primary-term-li .text-primary{right:auto;left:0}body.rtl .rank-math-primary-term-li .rank-math-tooltip{right:auto;left:0}body.rtl .rank-math-primary-term-li .rank-math-tooltip>span{right:auto;left:32px;-webkit-transform:translate3d(70%, -50%, 0);transform:translate3d(70%, -50%, 0)}body.rtl .rank-math-primary-term-li .rank-math-tooltip>span:after{left:-8px;right:auto;top:30%;-webkit-transform:rotate(180deg);transform:rotate(180deg)}body.rtl .rank-math-primary-term-li .rank-math-tooltip:hover>span{-webkit-transform:translate3d(0, -50%, 0);transform:translate3d(0, -50%, 0)}body.rtl .suggestion-item .suggestion-actions{float:left;margin-right:5px}body.rtl input[type=checkbox]:checked:before{margin:-3px}body.rtl .postbox-container #side-sortables{overflow:hidden}.ask-review{text-align:center}.ask-review p{font-size:14px;margin-bottom:20px}.ask-review .stars-wrapper{line-height:60px;width:316px;margin:0 auto;margin-bottom:20px;border:1px solid #ddd;border-radius:6px}.ask-review .stars-wrapper .stars a{position:relative;top:9px;display:inline-block;height:40px;width:40px;text-decoration:none;color:#aaa}.ask-review .stars-wrapper .stars a span{font-size:40px;height:40px;width:40px}.ask-review .stars-wrapper .stars a.highlighted,.ask-review .stars-wrapper .stars a:hover{color:#f9cb12}.ask-review .stars-wrapper .face{float:right;width:70px;height:60px;border-left:1px solid #ddd;background:#fafafa}.smiley{position:relative;top:50%;left:50%;height:22px;width:22px;padding:12px;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);border-radius:100%;background:linear-gradient(135deg, #ffe919 0%, #fbc000 100%)}.mouth{position:absolute;bottom:18%;left:50%;-webkit-box-sizing:border-box;box-sizing:border-box;width:60%;height:30%;margin-left:-30%;-webkit-transition:all 300ms cubic-bezier(0.645, 0.045, 0.355, 1);transition:all 300ms cubic-bezier(0.645, 0.045, 0.355, 1);border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:22px;border-bottom-left-radius:22px;background:#b57700}.eyes{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;margin-top:15%;padding:0 1px;-webkit-transition:all 300ms cubic-bezier(0.645, 0.045, 0.355, 1);transition:all 300ms cubic-bezier(0.645, 0.045, 0.355, 1)}.eyes .eye{position:relative;float:left;height:5px;width:5px;border-radius:100%;background:#b57700}.eyes .eye:nth-of-type(2){float:right}.eyes .eye::after{position:absolute;top:-5px;left:2px;display:block;height:0;width:0;content:'';-webkit-transition:all 300ms cubic-bezier(0.645, 0.045, 0.355, 1);transition:all 300ms cubic-bezier(0.645, 0.045, 0.355, 1);-webkit-transform:rotate(0deg);transform:rotate(0deg);background:#fed800}.eyes .eye:first-of-type::after{right:5px;left:auto;-webkit-transform:rotate(0deg);transform:rotate(0deg)}.smiley.normal .mouth{bottom:25%;width:40%;height:10%;margin-left:-20%;border-top-left-radius:22px;border-top-right-radius:22px;border-bottom-right-radius:22px;border-bottom-left-radius:22px}.smiley.normal .eyes{margin-top:30%}.smiley.angry .mouth{bottom:25%;left:50%;width:40%;height:10%;margin-left:-20%;border-bottom:0;border-top-left-radius:100%;border-top-right-radius:100%;border-bottom-right-radius:0;border-bottom-left-radius:0}.smiley.happy .mouth{-webkit-animation:move-mouth-down .8s;animation:move-mouth-down .8s;-webkit-animation-delay:.3s;animation-delay:.3s}@-webkit-keyframes move-mouth-down{0%{bottom:18%}35%{bottom:16%}65%{bottom:16%}100%{bottom:18%}}@keyframes move-mouth-down{0%{bottom:18%}35%{bottom:16%}65%{bottom:16%}100%{bottom:18%}}.smiley.happy .eyes{-webkit-animation:move-eyes-down .8s;animation:move-eyes-down .8s;-webkit-animation-delay:.3s;animation-delay:.3s}@-webkit-keyframes move-eyes-down{0%{margin-top:15%}35%{margin-top:19%}65%{margin-top:19%}100%{margin-top:15%}}@keyframes move-eyes-down{0%{margin-top:15%}35%{margin-top:19%}65%{margin-top:19%}100%{margin-top:15%}}.smiley.happy .eye:nth-of-type(2){height:5px;margin-top:0;-webkit-animation:wink .8s;animation:wink .8s;-webkit-animation-delay:.3s;animation-delay:.3s}@-webkit-keyframes wink{0%{height:5px;margin-top:0}30%{height:2px;margin-top:1px}70%{height:2px;margin-top:1px}100%{height:5px;margin-top:0}}@keyframes wink{0%{height:5px;margin-top:0}30%{height:2px;margin-top:1px}70%{height:2px;margin-top:1px}100%{height:5px;margin-top:0}}.smiley.normal .eye{height:5px;margin-top:0;-webkit-animation:blink .6s;animation:blink .6s;-webkit-animation-delay:.3s;animation-delay:.3s}@-webkit-keyframes blink{0%{height:5px;margin-top:0}25%{height:2px;margin-top:1px}50%{height:5px;margin-top:0}75%{height:2px;margin-top:1px}100%{height:5px;margin-top:0}}@keyframes blink{0%{height:5px;margin-top:0}25%{height:2px;margin-top:1px}50%{height:5px;margin-top:0}75%{height:2px;margin-top:1px}100%{height:5px;margin-top:0}}.smiley.angry .eyes,.smiley.angry .mouth{-webkit-animation:move-angry-head .6s;animation:move-angry-head .6s;-webkit-animation-delay:.3s;animation-delay:.3s}@-webkit-keyframes move-angry-head{0%{-webkit-transform:translateX(0%);transform:translateX(0%)}20%{-webkit-transform:translateX(-20%);transform:translateX(-20%)}40%{-webkit-transform:translateX(15%);transform:translateX(15%)}60%{-webkit-transform:translateX(-10%);transform:translateX(-10%)}80%{-webkit-transform:translateX(5%);transform:translateX(5%)}100%{-webkit-transform:translateX(0%);transform:translateX(0%)}}@keyframes move-angry-head{0%{-webkit-transform:translateX(0%);transform:translateX(0%)}20%{-webkit-transform:translateX(-20%);transform:translateX(-20%)}40%{-webkit-transform:translateX(15%);transform:translateX(15%)}60%{-webkit-transform:translateX(-10%);transform:translateX(-10%)}80%{-webkit-transform:translateX(5%);transform:translateX(5%)}100%{-webkit-transform:translateX(0%);transform:translateX(0%)}}
|
|
|
|
@@ -2,4 +2,4 @@
|
|
2 |
* Plugin: Rank Math
|
3 |
* URL: https://rankmath.com/wordpress/plugin/seo-suite/
|
4 |
* Name: setup-wizard.css
|
5 |
-
*/.rank-math-wizard-body--requirements h2>.dashicons,.rank-math-wizard-body--ready .cmb-form>header .dashicons-yes{margin-right:5px;padding:4px;vertical-align:-3px;color:#fff;border-radius:50%;background:#58bb58}.rank-math-wizard{background:#f1f1f1}.rank-math-wizard :focus{outline:none;-webkit-box-shadow:none;box-shadow:none}.rank-math-wizard a{text-decoration:none}.rank-math-wizard .notice-error{position:relative;margin-right:auto;margin-left:auto;background:#ffebee}.rank-math-wizard .text-center{text-align:center}.rank-math-wizard .wrapper{-webkit-box-sizing:border-box;box-sizing:border-box;max-width:970px;margin:40px auto;padding:60px 40px 50px;border-radius:5px;background:#fff;-webkit-box-shadow:0 4px 8px rgba(0,0,0,0.06);box-shadow:0 4px 8px rgba(0,0,0,0.06)}.rank-math-wizard .cmb-form>header,.rank-math-wizard .cmb-form header.redirections-header{margin-bottom:30px;text-align:center}.rank-math-wizard .cmb-form>header h1,.rank-math-wizard .cmb-form header.redirections-header h1{font-size:30px;font-weight:700;margin:0}.rank-math-wizard .cmb-form>header p,.rank-math-wizard .cmb-form header.redirections-header p{font-size:15px;max-width:715px;margin:10px auto;color:#939596}.rank-math-wizard .cmb-form header.redirections-header{margin-bottom:0}.rank-math-wizard .cmb-form header.redirections-header h1{margin-top:.67em}.rank-math-wizard .cmb-form .cmb-type-file .cmb-th label,.rank-math-wizard .cmb-form .cmb-type-switch .cmb-th label,.rank-math-wizard .cmb-form .cmb-type-multicheck .cmb-th label,.rank-math-wizard .cmb-form .cmb-type-radio-inline .cmb-th label{cursor:default}.rank-math-wizard .cmb-form .cmb-type-file .cmb-multicheck-toggle,.rank-math-wizard .cmb-form .cmb-type-switch .cmb-multicheck-toggle,.rank-math-wizard .cmb-form .cmb-type-multicheck .cmb-multicheck-toggle,.rank-math-wizard .cmb-form .cmb-type-radio-inline .cmb-multicheck-toggle{cursor:pointer}.rank-math-wizard .cmb-form .cmb-td button{cursor:pointer}.rank-math-wizard .form-footer:not(.custom){width:calc(100% + 80px);margin:75px -40px -50px;border-radius:0 0 5px 5px;overflow:hidden}.rank-math-wizard .form-footer:not(.custom) .button{border-radius:25px}.rank-math-wizard .form-footer:not(.custom) .button-secondary{margin-right:10px}.rank-math-collapsible-trigger{letter-spacing:.5px}.rank-math-collapsible-trigger .dashicons{font-size:16px;display:inline}.rank-math-collapsible-trigger .dashicons:before{font-size:22px;vertical-align:-2px}.rank-math-collapsible-trigger .dashicons span{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-size:12px;vertical-align:3px;color:rgba(36,41,46,0.65)}.rank-math-collapsible-trigger .dashicons-arrow-up{display:none}.rank-math-collapsible-trigger.open .dashicons-arrow-up{display:inline}.rank-math-collapsible-trigger.open .dashicons-arrow-down{display:none}.rank-math-collapsible-content{display:none}.rank-math-collapsible-content.open{display:block}.return-to-dashboard{margin-bottom:50px;text-align:center}.return-to-dashboard i{line-height:46px;color:#0474ab}.return-to-dashboard a{line-height:44px;display:inline-block;padding:0 25px 0 20px;-webkit-transition:color 150ms ease,opacity 300ms cubic-bezier(0.694, 0, 0.335, 1) 150ms;transition:color 150ms ease,opacity 300ms cubic-bezier(0.694, 0, 0.335, 1) 150ms;text-align:center;text-decoration:none;color:rgba(36,41,46,0.65);border-radius:25px;background:#fff;-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,0.09),0 2px 2px rgba(0,0,0,0.12);box-shadow:inset 0 1px 0 rgba(0,0,0,0.09),0 2px 2px rgba(0,0,0,0.12)}.return-to-dashboard a:hover{color:#0073aa}@media screen and (prefers-reduced-motion: reduce){.return-to-dashboard{opacity:1 !important}}.cmb2-wrap .cmb-row.features-child{padding:25px 20px !important;border-bottom-color:#ebebeb;background:#f4f4f4}.responsive-video{position:relative;overflow:hidden;padding-top:56.25%}.responsive-video iframe{border:0;position:absolute;top:0;right:0;bottom:0;left:0;height:100%;width:100%}.cmb-row.cmb-multicheck-inline .cmb2-checkbox-list,.cmb-row.cmb-multicheck-inline .cmb2-checkbox-list li,.cmb-row.cmb-multicheck-inline.with-description .cmb2-metabox-description{display:inline-block;width:48%;vertical-align:top}.cmb-row.cmb-multicheck-inline .cmb2-checkbox-list{width:420px;max-width:100%}.cmb-row.cmb-multicheck-inline.with-description .cmb-td{width:100%}.cmb-row.cmb-multicheck-inline.with-description .cmb2-checkbox-list{padding-top:20px}.cmb-row.cmb-multicheck-inline.with-description .cmb2-metabox-description{font-size:15px;line-height:1.5;padding:0;color:#21262c}.rank-math-wizard .rank-math-ui .button{font-size:17px;line-height:50px;height:50px;padding:0 50px;border:0}.rank-math-wizard .rank-math-ui .button.button-small{border-radius:10px}.rank-math-wizard .rank-math-ui .button-secondary:not(.cmb-multicheck-toggle):not(.cmb2-upload-button):not(.custom){background:#fff;-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1),0 1px 4px rgba(0,0,0,0.2);box-shadow:inset 0 1px 0 rgba(0,0,0,0.1),0 1px 4px rgba(0,0,0,0.2)}.rank-math-wizard .rank-math-ui .button-primary{background:#069de3;-webkit-box-shadow:0 2px 4px rgba(0,0,0,0.2);box-shadow:0 2px 4px rgba(0,0,0,0.2)}@media screen and (max-width: 782px){.rank-math-wizard .rank-math-ui .button{font-size:15px;padding:0 20px}}.rank-math-wizard .rank-math-ui .cmb-type-multicheck .cmb-td p:first-of-type{margin:0}.rank-math-wizard .rank-math-ui .cmb-multicheck-toggle{padding:0;cursor:pointer;color:#008ec3;border:0;background:transparent;-webkit-box-shadow:none;box-shadow:none}.rank-math-wizard .rank-math-ui .cmb-multicheck-toggle:active{-webkit-transform:none;transform:none;-webkit-box-shadow:none;box-shadow:none}.wizard-navigation{display:-webkit-box;display:-ms-flexbox;display:flex;margin:50px auto;text-align:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.wizard-navigation a{font-size:12px;position:relative;display:block;text-transform:uppercase;color:#b2b4b6;-webkit-box-flex:1;-ms-flex:1;flex:1}.wizard-navigation a:before{font-weight:600;display:block;padding-bottom:10px;content:attr(title);color:#b2b4b6}.wizard-navigation a:after{content:'';-webkit-transform:translate(-50%, 23px);transform:translate(-50%, 23px);background-color:#e5e5e5;position:absolute;top:15px;left:0;height:1px;width:100%}.wizard-navigation span{line-height:20px;position:relative;z-index:10;display:inline-block;border:1px solid #e5e5e5;border-radius:50%;background:#fff;height:20px;width:20px}.wizard-navigation .step-label:before{color:#069de3}.wizard-navigation .step-label:after{display:none}.wizard-navigation .step-label+a:after{width:162%;-webkit-transform:translate(-60%, 23px);transform:translate(-60%, 23px)}.wizard-navigation a.active span{margin-top:-2px;color:#fff;border:2px solid #fff;background:#069de3;-webkit-box-shadow:0 0 1px #069de3;box-shadow:0 0 0 1px #069de3}.wizard-navigation a.active:after{background:-webkit-gradient(linear, left top, right top, from(#58bb58), to(#069de3));background:linear-gradient(to right, #58bb58 0%, #069de3 100%)}.wizard-navigation a.active:before{color:#069de3}.wizard-navigation a.done span{color:#fff;border-color:#58bb58;background-color:#58bb58}.wizard-navigation a.done:after{background-color:#58bb58}@-webkit-keyframes hvr-ripple-out{100%{opacity:0;top:-20px;right:-20px;bottom:-20px;left:-20px}}@-webkit-keyframes hvr-ripple-out{100%{opacity:0;top:-20px;right:-20px;bottom:-20px;left:-20px}}@keyframes hvr-ripple-out{100%{opacity:0;top:-20px;right:-20px;bottom:-20px;left:-20px}}.rank-math-wizard-body--requirements h2{font-size:20px}.rank-math-wizard-body--requirements h2>.dashicons-warning{background:#e8cb57}.rank-math-wizard-body--requirements .form-table{margin-top:50px;border-top:1px solid #ededed}.rank-math-wizard-body--requirements .form-table tr:nth-child(odd){background:#fafafa}.rank-math-wizard-body--requirements .form-table td,.rank-math-wizard-body--requirements .form-table th{padding:10px 20px;border-bottom:1px solid #ededed}.rank-math-wizard-body--requirements .form-table th{width:auto}.rank-math-wizard-body--requirements .form-table th .description{font-size:12px;font-weight:normal;font-style:normal;color:#939596}.rank-math-wizard-body--requirements .form-table td{vertical-align:top;color:#58bb58}.rank-math-wizard-body--requirements .form-table td:last-child{text-align:right}.rank-math-wizard-body--requirements .form-table td:last-child .dashicons{font-size:24px}.rank-math-wizard-body--requirements .form-table .check-no th{border-left:3px solid #ee6a5e}.rank-math-wizard-body--requirements .form-table .check-no td{color:#ee6a5e}.rank-math-wizard-body--requirements .checklist-ok,.rank-math-wizard-body--requirements .checklist-not-ok{margin-top:10px;color:#969696}.rank-math-wizard-body--requirements .checklist-not-ok{color:#ee6a5e}.rank-math-wizard-body--requirements .conflict-text{font-size:15px;font-weight:500;margin-top:50px;color:#ee6a5e}.rank-math-wizard-body--requirements .noconflict{color:#58bb58}.rank-math-wizard-body--requirements .wizard-conflicts{margin-top:10px}.rank-math-wizard-body--requirements .wizard-conflicts .import-info{font-size:12px;font-weight:normal;color:#777}.rank-math-wizard-body--requirements .wizard-conflicts .import-info:before{content:' - '}.rank-math-wizard-body--requirements .wizard-conflicts td{padding:8px 10px}.rank-math-wizard-body--requirements .wizard-conflicts td:first-child{width:20px;padding-right:0;color:#ee6a5e}.rank-math-wizard-body--requirements .wizard-conflicts td:first-child .dashicons-yes{color:#58bb58}.rank-math-wizard-body--requirements .wizard-conflicts td a.disabled{cursor:not-allowed}.rank-math-wizard-body--requirements .form-footer{margin:60px 0 25px}.rank-math-wizard-body--requirements .form-footer .button{font-size:24px;line-height:82px;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);border-radius:82px;height:auto;width:280px}.rank-math-wizard-body--requirements .form-footer .button i{line-height:80px}.rank-math-wizard-body--requirements .form-footer .button:before{content:'';-webkit-animation:hvr-ripple-out 1s linear infinite;border:#bcdbea solid 6px;border-radius:55px;position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px}.rank-math-wizard-body--requirements .rank-math-collapsible-trigger{margin-left:10px;padding:0 12px 0 5px;-webkit-transition:color 150ms ease,opacity 300ms cubic-bezier(0.694, 0, 0.335, 1) 150ms;transition:color 150ms ease,opacity 300ms cubic-bezier(0.694, 0, 0.335, 1) 150ms;border-radius:44px;-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1),0 2px 4px rgba(0,0,0,0.2);box-shadow:inset 0 1px 0 rgba(0,0,0,0.1),0 2px 4px rgba(0,0,0,0.2)}.rank-math-wizard-body--requirements .rank-math-collapsible-trigger:hover{background:#fafafa}.rank-math-wizard-body--import .cmb-field-list{position:relative;overflow:hidden}.rank-math-wizard-body--import .cmb-field-list h3.import-label{display:inline-block;width:20%}.rank-math-wizard-body--import .cmb-field-list .cmb-type-group{float:right;width:80%}.rank-math-wizard-body--import .cmb-field-list .cmb-group-description{position:absolute;z-index:1;top:6px;left:20px}.rank-math-wizard-body--import .cmb-field-list .cmb-row{padding:0;margin-bottom:5px;border:none}.rank-math-wizard-body--import .cmb-field-list .cmb-row .cmbhandle{top:14px;right:20px;width:30px;height:30px;border-radius:50%;text-align:center;background-color:#059de2;color:#fff}.rank-math-wizard-body--import .cmb-field-list .cmb-row .cmbhandle:before{content:"\f343";padding:0;right:0;left:1px;top:5px;bottom:0}.rank-math-wizard-body--import .cmb-field-list .cmb-row.closed .inside{display:none}.rank-math-wizard-body--import .cmb-field-list .cmb-row.closed .cmbhandle{background-color:#fff;color:#a4a4a4;-webkit-box-shadow:1px -1px 62px -13px rgba(0,0,0,0.14);box-shadow:1px -1px 62px -13px rgba(0,0,0,0.14)}.rank-math-wizard-body--import .cmb-field-list .cmb-row.closed .cmbhandle:before{content:"\f347";left:0;top:6px}.rank-math-wizard-body--import .cmb-field-list .cmb-row h3{margin:0;background-color:#f1f1f1;padding:14px 20px 13px 50px;font-size:18px;cursor:pointer}.rank-math-wizard-body--import .cmb-field-list .cmb-row .cmb-td{width:100%}.rank-math-wizard-body--import .cmb-field-list .cmb-row .cmb-td>p{margin:0}.rank-math-wizard-body--import .cmb-field-list .cmb-row .cmb-td>p .cmb-multicheck-toggle{font-size:15px;color:#0474ab}.rank-math-wizard-body--import .cmb-field-list .cmb-row .inside{width:100%;margin:0;background-color:#f6f6f6;padding:30px 20px;overflow:visible}.rank-math-wizard-body--import .cmb-field-list .cmb-row .inside .cmb2-list{width:100%}.rank-math-wizard-body--import .cmb-field-list .cmb-row .inside .cmb2-list li{margin-bottom:9px}.rank-math-wizard-body--import .cmb-field-list .cmb-row .inside .cmb2-list li label{font-size:16px;color:#24292e}.rank-math-wizard-body--import .cmb-field-list .cmb-row .inside .cmb2-metabox-description{width:100%;color:#888;font-size:13px;font-style:italic;margin-top:20px}.rank-math-wizard-body--import .import-progress-area{display:none;margin:20px 0;background:#eee;width:80%;float:right}.rank-math-wizard-body--import .cmb2-id-import-from .cmb-th{width:auto}#import-progress-bar{display:none;width:80%;float:right;font-size:15px;color:#959798}#import-progress-bar #importProgress{margin-top:30px;margin-bottom:10px;background-color:#dddfe0;border-radius:50px}#import-progress-bar #importProgress #importBar{width:1%;height:8px;background-color:#069de3;border-radius:50px;-webkit-transition:width 1s;transition:width 1s}#import-progress-bar .left{float:left}#import-progress-bar .left strong{color:#65676a}#import-progress-bar .right{float:right}.rank-math-wizard-body--yoursite .rank-math-wizard-tutorial{margin-bottom:30px}.rank-math-wizard-body--yoursite .rank-math-wizard-tutorial header{padding:12px 15px;background:#f0f0f0}.rank-math-wizard-body--yoursite .rank-math-wizard-tutorial header a{color:#069de3}.rank-math-wizard-body--yoursite .rank-math-tabs-navigation{padding:0 32px;border-bottom:1px solid #e5e5e5;background:#fbfbfb}.rank-math-wizard-body--yoursite .rank-math-tabs-navigation a{font-size:16px;font-weight:600;display:inline-block;padding:22px 16px 16px;color:#555}.rank-math-wizard-body--yoursite .rank-math-tabs-navigation a.active{color:#069de3;border-bottom:2px solid #069de3}.rank-math-wizard-body--yoursite .rank-math-tabs-navigation a .dashicons{margin-right:15px}.rank-math-wizard-body--yoursite .rank-math-tabs-content{padding:32px;background:#f4f4f4}.rank-math-wizard-body--yoursite .search-form:not(.media-toolbar-primary) label{display:block;margin-bottom:5px}.rank-math-wizard-body--yoursite .search-form:not(.media-toolbar-primary) input{font-size:1.3em;margin-right:15px;padding:0 8px 0 15px;height:51px;width:77.5%}.rank-math-wizard-body--yoursite .search-form:not(.media-toolbar-primary) button.button{width:20%;letter-spacing:.05em}.rank-math-wizard-body--searchconsole .cmb2-id-console-authorization-code a.button-secondary{line-height:1;padding:10px 0 5px;color:#008ec3;border-bottom:1px dotted;border-radius:0;background:transparent;-webkit-box-shadow:none;box-shadow:none}.rank-math-wizard-body--searchconsole .cmb2-id-console-profile select{margin-top:0}.rank-math-wizard-body--optimization .rank-math-collapsible-trigger{display:block;margin-top:-14px;text-align:center;-webkit-box-shadow:none !important;box-shadow:none !important}.rank-math-wizard-body--optimization .rank-math-collapsible-trigger span{background:#fff}.rank-math-wizard-body--optimization .rank-math-collapsible-content .cmb-row:not(.cmb-type-title):first-of-type{padding-top:25px}.rank-math-wizard-body--ready .cmb-form>header h1{font-size:20px}.rank-math-wizard-body--ready .wizard-usage-tracking{margin-top:35px;padding:25px 35px;background:#f5f5f5}.rank-math-wizard-body--ready .wizard-usage-tracking p{font-size:16px;margin-top:0}.rank-math-wizard-body--ready .wizard-next-steps{margin-top:60px}.rank-math-wizard-body--ready .wizard-next-steps>div{float:left;box-sizing:border-box;width:50%}.rank-math-wizard-body--ready .wizard-next-steps .learn-more{padding-left:35px}.rank-math-wizard-body--ready .wizard-next-steps .learn-more h2{margin-top:0}.rank-math-wizard-body--ready .wizard-next-steps .learn-more li{font-size:18px;line-height:1.5;margin-bottom:12px}.rank-math-wizard-body--ready .wizard-next-steps .learn-more a{color:#089ce6}.rank-math-wizard-body--ready .wizard-next-steps .learn-more .dashicons{font-size:24px;margin-top:2px;margin-right:13px;color:#bcbdbf}.rank-math-wizard-body--ready .score-100{margin-top:-20px;text-align:right}.rank-math-wizard-body--ready .score-100 img{max-width:250px}.rank-math-wizard-body--ready .rank-math-score-wrapper{text-align:center;margin-top:60px}.rank-math-wizard-body--ready .rank-math-score-wrapper h3{display:inline-block;color:#434343;font-size:17px;font-weight:500;margin:0}.rank-math-wizard-body--ready .rank-math-score-wrapper .rank-math-score-image{margin-top:30px}.rank-math-wizard-body--ready .rank-math-score-wrapper .rank-math-score-image img{max-width:100%}.rank-math-wizard-body--ready .rank-math-score-wrapper .switch{position:relative;display:inline-block;cursor:pointer;width:70px;height:28px;border-radius:18px;margin-left:15px;margin-top:-10px}.rank-math-wizard-body--ready .rank-math-score-wrapper .switch-input{position:absolute;top:0;left:0;opacity:0}.rank-math-wizard-body--ready .rank-math-score-wrapper .switch-label{position:relative;display:block;height:inherit;font-size:16px;font-weight:bold;line-height:1;border-radius:inherit;border:2px solid #4a535b}.rank-math-wizard-body--ready .rank-math-score-wrapper .switch-label:before,.rank-math-wizard-body--ready .rank-math-score-wrapper .switch-label:after{position:absolute;top:50%;margin-top:-.5em;transition:inherit}.rank-math-wizard-body--ready .rank-math-score-wrapper .switch-label:before{content:attr(data-off);right:11px;color:#4a535b}.rank-math-wizard-body--ready .rank-math-score-wrapper .switch-label:after{content:attr(data-on);left:11px;color:#FFFFFF;opacity:0}.rank-math-wizard-body--ready .rank-math-score-wrapper .switch-handle{position:absolute;top:9px;left:10px;width:15px;height:15px;background:#6e7780;border-radius:100%}.rank-math-wizard-body--ready .rank-math-score-wrapper .switch-label,.rank-math-wizard-body--ready .rank-math-score-wrapper .switch-handle{transition:All 0.3s ease;-webkit-transition:All 0.3s ease;-moz-transition:All 0.3s ease;-o-transition:All 0.3s ease}.rank-math-wizard-body--ready .rank-math-score-wrapper .switch-input:checked ~ .switch-label{background:#069de3;border-color:#069de3}.rank-math-wizard-body--ready .rank-math-score-wrapper .switch-input:checked ~ .switch-label:before{opacity:0}.rank-math-wizard-body--ready .rank-math-score-wrapper .switch-input:checked ~ .switch-label:after{opacity:1}.rank-math-wizard-body--ready .rank-math-score-wrapper .switch-input:checked ~ .switch-handle{left:45px;background:#fff}.rank-math-wizard-body--register .wrapper{max-width:700px}.rank-math-wizard-body--register .notice{margin-bottom:30px;display:none}.rank-math-wizard-body--register .notice-error{display:block}.rank-math-wizard-body--register .notice.is-dismissible{display:none}.rank-math-wizard-body--register .rank-math-registration-notice{display:block;margin:30px auto;text-align:left;background:#fefcee}.cmb2-id-accept-terms .cmb-td label{display:inline-block;width:80%}.cmb2-id-rank-math-usage-tracking .cmb-th{font-weight:normal;float:right;width:95% !important;max-width:none !important;color:#8c8c8c}.cmb2-id-rank-math-usage-tracking .cmb-th label{padding-top:0 !important;padding-right:0 !important}.cmb2-id-rank-math-usage-tracking .cmb-td{width:5% !important}@media screen and (max-width: 905px){.rank-math-wizard #cmb2-metabox-rank-math-wizard .cmb2-id-console-authorization-code .button-primary,.rank-math-wizard #cmb2-metabox-rank-math-wizard .cmb2-id-console-profile .button-primary{display:block;margin-top:10px;margin-left:0}.rank-math-wizard .cmb-row.cmb-multicheck-inline.with-description .cmb2-metabox-description{width:100%;margin-top:20px}}@media screen and (max-width: 782px){.rank-math-wizard .wizard-navigation a:before{font-size:12px}.rank-math-wizard .cmb2-wrap .cmb-row input[type=checkbox]:checked:before{font-size:30px}.rank-math-wizard #rank-math-compatibility-collapsible .form-table th,.rank-math-wizard #rank-math-compatibility-collapsible .form-table td{display:table-cell}}@media screen and (max-width: 782px) and (max-width: 640px){.rank-math-wizard .logo img{width:190px}.rank-math-wizard .wrapper{padding:30px 15px 35px}.rank-math-wizard .form-footer{margin-top:15px}.rank-math-wizard .cmb2-wrap .cmb-row .regular-text,.rank-math-wizard #cmb2-metabox-rank-math-wizard select{width:100%;max-width:100%}.rank-math-wizard .form-footer:not(.custom){text-align:center}}@media screen and (max-width: 782px) and (max-width: 595px){.rank-math-wizard .wizard-navigation{margin:25px auto 50px}.rank-math-wizard .wizard-navigation a:before{display:none}.rank-math-wizard .wizard-navigation a:first-child:before{position:relative;z-index:1;display:block;margin-top:-7px;background:#fff}.rank-math-wizard .wizard-navigation a:after{top:-12px}.rank-math-wizard.rank-math-wizard .cmb-form>header h1{font-size:24px}.rank-math-wizard.rank-math-wizard .cmb-form>header p{margin-top:10px}.rank-math-wizard.rank-math-wizard-body--ready .wizard-usage-tracking{padding:15px}.rank-math-wizard.rank-math-wizard-body--ready .wizard-share{margin-top:25px}.rank-math-wizard.rank-math-wizard-body--ready .wizard-next-steps{margin:25px 0 0}.rank-math-wizard.rank-math-wizard-body--ready .wizard-next-steps>div{width:100%;padding:0 0 25px}}body.rtl.rank-math-wizard-body--requirements .rank-math-collapsible-trigger{display:inline-block;margin-right:10px;margin-left:0;padding:0 5px 0 12px}body.rtl.rank-math-wizard-body--requirements h2>.dashicons{margin-right:0;margin-left:5px}body.rtl.rank-math-wizard-body--requirements .form-table td:last-child{text-align:left}body.rtl.rank-math-wizard-body--requirements .form-footer .button .dashicons-arrow-right-alt2:before{content:'\f341'}body.rtl .wizard-navigation .step-label+a:after{-webkit-transform:translate(20%, 23px);transform:translate(20%, 23px)}body.rtl .wizard-navigation a:after{-webkit-transform:translate(50%, 23px);transform:translate(50%, 23px)}body.rtl .return-to-dashboard a .dashicons-arrow-left-alt2:before{content:'\f345'}body.rtl.rank-math-wizard .form-footer:not(.custom) .button-secondary{margin-right:0;margin-left:10px}body.rtl.rank-math-wizard-body--ready .cmb-form>header .dashicons-yes{margin-right:0;margin-left:5px}body.rtl.rank-math-wizard-body--ready .wizard-share{margin-right:10px;margin-left:0}body.rtl.rank-math-wizard-body--ready .wizard-share a{display:inline-block;margin-right:5px;margin-left:0;padding-right:15px;padding-left:20px}body.rtl.rank-math-wizard-body--ready .wizard-share .dashicons{margin-right:0 !important;margin-left:5px !important}body.rtl.rank-math-wizard-body--ready .wizard-next-steps>div{float:right}body.rtl.rank-math-wizard-body--ready .wizard-next-steps .learn-more{padding-right:35px;padding-left:0}body.rtl.rank-math-wizard-body--ready .wizard-next-steps .learn-more .dashicons{margin-right:0;margin-left:13px}body.rtl.rank-math-wizard-body--ready .rank-math-score-wrapper .switch{margin-left:0;margin-right:15px}
|
2 |
* Plugin: Rank Math
|
3 |
* URL: https://rankmath.com/wordpress/plugin/seo-suite/
|
4 |
* Name: setup-wizard.css
|
5 |
+
*/.rank-math-wizard-body--requirements h2>.dashicons,.rank-math-wizard-body--ready .cmb-form>header .dashicons-yes{margin-right:5px;padding:4px;vertical-align:-3px;color:#fff;border-radius:50%;background:#58bb58}.rank-math-wizard{background:#f1f1f1}.rank-math-wizard :focus{outline:none;-webkit-box-shadow:none;box-shadow:none}.rank-math-wizard a{text-decoration:none}.rank-math-wizard .notice-error{position:relative;margin-right:auto;margin-left:auto;background:#ffebee}.rank-math-wizard .text-center{text-align:center}.rank-math-wizard .wrapper{-webkit-box-sizing:border-box;box-sizing:border-box;max-width:970px;margin:40px auto;padding:60px 40px 50px;border-radius:5px;background:#fff;-webkit-box-shadow:0 4px 8px rgba(0,0,0,0.06);box-shadow:0 4px 8px rgba(0,0,0,0.06)}.rank-math-wizard .cmb-form>header,.rank-math-wizard .cmb-form header.redirections-header{margin-bottom:30px;text-align:center}.rank-math-wizard .cmb-form>header h1,.rank-math-wizard .cmb-form header.redirections-header h1{font-size:30px;font-weight:700;margin:0}.rank-math-wizard .cmb-form>header p,.rank-math-wizard .cmb-form header.redirections-header p{font-size:15px;max-width:715px;margin:10px auto;color:#939596}.rank-math-wizard .cmb-form header.redirections-header{margin-bottom:0}.rank-math-wizard .cmb-form header.redirections-header h1{margin-top:.67em}.rank-math-wizard .cmb-form .cmb-type-file .cmb-th label,.rank-math-wizard .cmb-form .cmb-type-switch .cmb-th label,.rank-math-wizard .cmb-form .cmb-type-multicheck .cmb-th label,.rank-math-wizard .cmb-form .cmb-type-radio-inline .cmb-th label{cursor:default}.rank-math-wizard .cmb-form .cmb-type-file .cmb-multicheck-toggle,.rank-math-wizard .cmb-form .cmb-type-switch .cmb-multicheck-toggle,.rank-math-wizard .cmb-form .cmb-type-multicheck .cmb-multicheck-toggle,.rank-math-wizard .cmb-form .cmb-type-radio-inline .cmb-multicheck-toggle{cursor:pointer}.rank-math-wizard .cmb-form .cmb-td button{cursor:pointer}.rank-math-wizard .form-footer:not(.custom){width:calc(100% + 80px);margin:75px -40px -50px;border-radius:0 0 5px 5px;overflow:hidden}.rank-math-wizard .form-footer:not(.custom) .button{border-radius:25px}.rank-math-wizard .form-footer:not(.custom) .button-secondary{margin-right:10px}.rank-math-collapsible-trigger{letter-spacing:.5px}.rank-math-collapsible-trigger .dashicons{font-size:16px;display:inline}.rank-math-collapsible-trigger .dashicons:before{font-size:22px;vertical-align:-2px}.rank-math-collapsible-trigger .dashicons span{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif;font-size:12px;vertical-align:3px;color:rgba(36,41,46,0.65)}.rank-math-collapsible-trigger .dashicons-arrow-up{display:none}.rank-math-collapsible-trigger.open .dashicons-arrow-up{display:inline}.rank-math-collapsible-trigger.open .dashicons-arrow-down{display:none}.rank-math-collapsible-content{display:none}.rank-math-collapsible-content.open{display:block}.return-to-dashboard{margin-bottom:50px;text-align:center}.return-to-dashboard i{line-height:46px;color:#0474ab}.return-to-dashboard a{line-height:44px;display:inline-block;padding:0 25px 0 20px;-webkit-transition:color 150ms ease,opacity 300ms cubic-bezier(0.694, 0, 0.335, 1) 150ms;transition:color 150ms ease,opacity 300ms cubic-bezier(0.694, 0, 0.335, 1) 150ms;text-align:center;text-decoration:none;color:rgba(36,41,46,0.65);border-radius:25px;background:#fff;-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,0.09),0 2px 2px rgba(0,0,0,0.12);box-shadow:inset 0 1px 0 rgba(0,0,0,0.09),0 2px 2px rgba(0,0,0,0.12)}.return-to-dashboard a:hover{color:#0073aa}@media screen and (prefers-reduced-motion: reduce){.return-to-dashboard{opacity:1 !important}}.cmb2-wrap .cmb-row.features-child{padding:25px 20px !important;border-bottom-color:#ebebeb;background:#f4f4f4}.responsive-video{position:relative;overflow:hidden;padding-top:56.25%}.responsive-video iframe{border:0;position:absolute;top:0;right:0;bottom:0;left:0;height:100%;width:100%}.cmb-row.cmb-multicheck-inline .cmb2-checkbox-list,.cmb-row.cmb-multicheck-inline .cmb2-checkbox-list li,.cmb-row.cmb-multicheck-inline.with-description .cmb2-metabox-description{display:inline-block;width:48%;vertical-align:top}.cmb-row.cmb-multicheck-inline .cmb2-checkbox-list{width:420px;max-width:100%}.cmb-row.cmb-multicheck-inline.with-description .cmb-td{width:100%}.cmb-row.cmb-multicheck-inline.with-description .cmb2-checkbox-list{padding-top:20px}.cmb-row.cmb-multicheck-inline.with-description .cmb2-metabox-description{font-size:15px;line-height:1.5;padding:0;color:#21262c}.rank-math-wizard .rank-math-ui .button{font-size:17px;line-height:50px;height:50px;padding:0 50px;border:0}.rank-math-wizard .rank-math-ui .button.button-small{border-radius:10px}.rank-math-wizard .rank-math-ui .button-secondary:not(.cmb-multicheck-toggle):not(.cmb2-upload-button):not(.custom){background:#fff;-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1),0 1px 4px rgba(0,0,0,0.2);box-shadow:inset 0 1px 0 rgba(0,0,0,0.1),0 1px 4px rgba(0,0,0,0.2)}.rank-math-wizard .rank-math-ui .button-primary{background:#069de3;-webkit-box-shadow:0 2px 4px rgba(0,0,0,0.2);box-shadow:0 2px 4px rgba(0,0,0,0.2)}@media screen and (max-width: 782px){.rank-math-wizard .rank-math-ui .button{font-size:15px;padding:0 20px}}.rank-math-wizard .rank-math-ui .cmb-type-multicheck .cmb-td p:first-of-type{margin:0}.rank-math-wizard .rank-math-ui .cmb-multicheck-toggle{padding:0;cursor:pointer;color:#008ec3;border:0;background:transparent;-webkit-box-shadow:none;box-shadow:none}.rank-math-wizard .rank-math-ui .cmb-multicheck-toggle:active{-webkit-transform:none;transform:none;-webkit-box-shadow:none;box-shadow:none}.wizard-navigation{display:-webkit-box;display:-ms-flexbox;display:flex;margin:50px auto;text-align:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.wizard-navigation a{font-size:12px;position:relative;display:block;text-transform:uppercase;color:#b2b4b6;-webkit-box-flex:1;-ms-flex:1;flex:1}.wizard-navigation a:before{font-weight:600;display:block;padding-bottom:10px;content:attr(title);color:#b2b4b6}.wizard-navigation a:after{content:'';-webkit-transform:translate(-50%, 23px);transform:translate(-50%, 23px);background-color:#e5e5e5;position:absolute;top:15px;left:0;height:1px;width:100%}.wizard-navigation span{line-height:20px;position:relative;z-index:10;display:inline-block;border:1px solid #e5e5e5;border-radius:50%;background:#fff;height:20px;width:20px}.wizard-navigation .step-label:before{color:#069de3}.wizard-navigation .step-label:after{display:none}.wizard-navigation .step-label+a:after{width:162%;-webkit-transform:translate(-60%, 23px);transform:translate(-60%, 23px)}.wizard-navigation a.active span{margin-top:-2px;color:#fff;border:2px solid #fff;background:#069de3;-webkit-box-shadow:0 0 1px #069de3;box-shadow:0 0 0 1px #069de3}.wizard-navigation a.active:after{background:-webkit-gradient(linear, left top, right top, from(#58bb58), to(#069de3));background:linear-gradient(to right, #58bb58 0%, #069de3 100%)}.wizard-navigation a.active:before{color:#069de3}.wizard-navigation a.done span{color:#fff;border-color:#58bb58;background-color:#58bb58}.wizard-navigation a.done:after{background-color:#58bb58}@-webkit-keyframes hvr-ripple-out{100%{opacity:0;top:-20px;right:-20px;bottom:-20px;left:-20px}}@-webkit-keyframes hvr-ripple-out{100%{opacity:0;top:-20px;right:-20px;bottom:-20px;left:-20px}}@keyframes hvr-ripple-out{100%{opacity:0;top:-20px;right:-20px;bottom:-20px;left:-20px}}.rank-math-wizard-body--requirements h2{font-size:20px}.rank-math-wizard-body--requirements h2>.dashicons-warning{background:#e8cb57}.rank-math-wizard-body--requirements .form-table{margin-top:50px;border-top:1px solid #ededed}.rank-math-wizard-body--requirements .form-table tr:nth-child(odd){background:#fafafa}.rank-math-wizard-body--requirements .form-table td,.rank-math-wizard-body--requirements .form-table th{padding:10px 20px;border-bottom:1px solid #ededed}.rank-math-wizard-body--requirements .form-table th{width:auto}.rank-math-wizard-body--requirements .form-table th .description{font-size:12px;font-weight:normal;font-style:normal;color:#939596}.rank-math-wizard-body--requirements .form-table td{vertical-align:top;color:#58bb58}.rank-math-wizard-body--requirements .form-table td:last-child{text-align:right}.rank-math-wizard-body--requirements .form-table td:last-child .dashicons{font-size:24px}.rank-math-wizard-body--requirements .form-table .check-no th{border-left:3px solid #ee6a5e}.rank-math-wizard-body--requirements .form-table .check-no td{color:#ee6a5e}.rank-math-wizard-body--requirements .checklist-ok,.rank-math-wizard-body--requirements .checklist-not-ok{margin-top:10px;color:#969696}.rank-math-wizard-body--requirements .checklist-not-ok{color:#ee6a5e}.rank-math-wizard-body--requirements .conflict-text{font-size:15px;font-weight:500;margin-top:50px;color:#ee6a5e}.rank-math-wizard-body--requirements .noconflict{color:#58bb58}.rank-math-wizard-body--requirements .wizard-conflicts{margin-top:10px}.rank-math-wizard-body--requirements .wizard-conflicts .import-info{font-size:12px;font-weight:normal;color:#777}.rank-math-wizard-body--requirements .wizard-conflicts .import-info:before{content:' - '}.rank-math-wizard-body--requirements .wizard-conflicts td{padding:8px 10px}.rank-math-wizard-body--requirements .wizard-conflicts td:first-child{width:20px;padding-right:0;color:#ee6a5e}.rank-math-wizard-body--requirements .wizard-conflicts td:first-child .dashicons-yes{color:#58bb58}.rank-math-wizard-body--requirements .wizard-conflicts td a.disabled{cursor:not-allowed}.rank-math-wizard-body--requirements .form-footer{margin:60px 0 25px}.rank-math-wizard-body--requirements .form-footer .button{font-size:24px;line-height:82px;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);border-radius:82px;height:auto;width:280px}.rank-math-wizard-body--requirements .form-footer .button i{line-height:80px}.rank-math-wizard-body--requirements .form-footer .button:before{content:'';-webkit-animation:hvr-ripple-out 1s linear infinite;border:#bcdbea solid 6px;border-radius:55px;position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px}.rank-math-wizard-body--requirements .rank-math-collapsible-trigger{margin-left:10px;padding:0 12px 0 5px;-webkit-transition:color 150ms ease,opacity 300ms cubic-bezier(0.694, 0, 0.335, 1) 150ms;transition:color 150ms ease,opacity 300ms cubic-bezier(0.694, 0, 0.335, 1) 150ms;border-radius:44px;-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1),0 2px 4px rgba(0,0,0,0.2);box-shadow:inset 0 1px 0 rgba(0,0,0,0.1),0 2px 4px rgba(0,0,0,0.2)}.rank-math-wizard-body--requirements .rank-math-collapsible-trigger:hover{background:#fafafa}.rank-math-wizard-body--import .cmb-field-list{position:relative;overflow:hidden}.rank-math-wizard-body--import .cmb-field-list h3.import-label{display:inline-block;width:20%}.rank-math-wizard-body--import .cmb-field-list .cmb-type-group{float:right;width:80%}.rank-math-wizard-body--import .cmb-field-list .cmb-group-description{position:absolute;z-index:1;top:6px;left:20px}.rank-math-wizard-body--import .cmb-field-list .cmb-row{padding:0;margin-bottom:5px;border:none}.rank-math-wizard-body--import .cmb-field-list .cmb-row .cmbhandle{top:14px;right:20px;width:30px;height:30px;border-radius:50%;text-align:center;background-color:#059de2;color:#fff}.rank-math-wizard-body--import .cmb-field-list .cmb-row .cmbhandle:before{content:"\f343";padding:0;right:0;left:1px;top:5px;bottom:0}.rank-math-wizard-body--import .cmb-field-list .cmb-row.closed .inside{display:none}.rank-math-wizard-body--import .cmb-field-list .cmb-row.closed .cmbhandle{background-color:#fff;color:#a4a4a4;-webkit-box-shadow:1px -1px 62px -13px rgba(0,0,0,0.14);box-shadow:1px -1px 62px -13px rgba(0,0,0,0.14)}.rank-math-wizard-body--import .cmb-field-list .cmb-row.closed .cmbhandle:before{content:"\f347";left:0;top:6px}.rank-math-wizard-body--import .cmb-field-list .cmb-row h3{margin:0;background-color:#f1f1f1;padding:14px 20px 13px 50px;font-size:18px;cursor:pointer}.rank-math-wizard-body--import .cmb-field-list .cmb-row .cmb-td{width:100%}.rank-math-wizard-body--import .cmb-field-list .cmb-row .cmb-td>p{margin:0}.rank-math-wizard-body--import .cmb-field-list .cmb-row .cmb-td>p .cmb-multicheck-toggle{font-size:15px;color:#0474ab}.rank-math-wizard-body--import .cmb-field-list .cmb-row .inside{width:100%;margin:0;background-color:#f6f6f6;padding:30px 20px;overflow:visible}.rank-math-wizard-body--import .cmb-field-list .cmb-row .inside .cmb2-list{width:100%}.rank-math-wizard-body--import .cmb-field-list .cmb-row .inside .cmb2-list li{margin-bottom:9px}.rank-math-wizard-body--import .cmb-field-list .cmb-row .inside .cmb2-list li label{font-size:16px;color:#24292e}.rank-math-wizard-body--import .cmb-field-list .cmb-row .inside .cmb2-metabox-description{width:100%;color:#888;font-size:13px;font-style:italic;margin-top:20px}.rank-math-wizard-body--import .import-progress-area{display:none;margin:20px 0;background:#eee;width:80%;float:right}.rank-math-wizard-body--import .cmb2-id-import-from .cmb-th{width:auto}#import-progress-bar{display:none;width:80%;float:right;font-size:15px;color:#959798}#import-progress-bar #importProgress{margin-top:30px;margin-bottom:10px;background-color:#dddfe0;border-radius:50px}#import-progress-bar #importProgress #importBar{width:1%;height:8px;background-color:#069de3;border-radius:50px;-webkit-transition:width 1s;transition:width 1s}#import-progress-bar .left{float:left}#import-progress-bar .left strong{color:#65676a}#import-progress-bar .right{float:right}.rank-math-wizard-body--yoursite .rank-math-wizard-tutorial{margin-bottom:30px}.rank-math-wizard-body--yoursite .rank-math-wizard-tutorial header{padding:12px 15px;background:#f0f0f0}.rank-math-wizard-body--yoursite .rank-math-wizard-tutorial header a{color:#069de3}.rank-math-wizard-body--yoursite .rank-math-tabs-navigation{padding:0 32px;border-bottom:1px solid #e5e5e5;background:#fbfbfb}.rank-math-wizard-body--yoursite .rank-math-tabs-navigation a{font-size:16px;font-weight:600;display:inline-block;padding:22px 16px 16px;color:#555}.rank-math-wizard-body--yoursite .rank-math-tabs-navigation a.active{color:#069de3;border-bottom:2px solid #069de3}.rank-math-wizard-body--yoursite .rank-math-tabs-navigation a .dashicons{margin-right:15px}.rank-math-wizard-body--yoursite .rank-math-tabs-content{padding:32px;background:#f4f4f4}.rank-math-wizard-body--yoursite .search-form:not(.media-toolbar-primary) label{display:block;margin-bottom:5px}.rank-math-wizard-body--yoursite .search-form:not(.media-toolbar-primary) input{font-size:1.3em;margin-right:15px;padding:0 8px 0 15px;height:51px;width:77.5%}.rank-math-wizard-body--yoursite .search-form:not(.media-toolbar-primary) button.button{width:20%;letter-spacing:.05em}.rank-math-wizard-body--searchconsole .cmb2-id-console-authorization-code a.button-secondary{line-height:1;padding:10px 0 5px;color:#008ec3;border-bottom:1px dotted;border-radius:0;background:transparent;-webkit-box-shadow:none;box-shadow:none}.rank-math-wizard-body--searchconsole .cmb2-id-console-profile select{margin-top:0}.rank-math-wizard-body--optimization .rank-math-collapsible-trigger{display:block;margin-top:-14px;text-align:center;-webkit-box-shadow:none !important;box-shadow:none !important}.rank-math-wizard-body--optimization .rank-math-collapsible-trigger span{background:#fff}.rank-math-wizard-body--optimization .rank-math-collapsible-content .cmb-row:not(.cmb-type-title):first-of-type{padding-top:25px}.rank-math-wizard-body--ready .cmb-form>header h1{font-size:20px}.rank-math-wizard-body--ready .wizard-usage-tracking{margin-top:35px;padding:25px 35px;background:#f5f5f5}.rank-math-wizard-body--ready .wizard-usage-tracking p{font-size:16px;margin-top:0}.rank-math-wizard-body--ready .wizard-next-steps{margin-top:60px}.rank-math-wizard-body--ready .wizard-next-steps>div{float:left;box-sizing:border-box;width:50%}.rank-math-wizard-body--ready .wizard-next-steps .learn-more{padding-left:35px}.rank-math-wizard-body--ready .wizard-next-steps .learn-more h2{margin-top:0}.rank-math-wizard-body--ready .wizard-next-steps .learn-more li{font-size:18px;line-height:1.5;margin-bottom:12px}.rank-math-wizard-body--ready .wizard-next-steps .learn-more a{color:#089ce6}.rank-math-wizard-body--ready .wizard-next-steps .learn-more .dashicons{font-size:24px;margin-top:2px;margin-right:13px;color:#bcbdbf}.rank-math-wizard-body--ready .score-100{margin-top:-20px;text-align:right}.rank-math-wizard-body--ready .score-100 img{max-width:250px}.rank-math-wizard-body--ready .rank-math-score-wrapper{text-align:center;margin-top:60px}.rank-math-wizard-body--ready .rank-math-score-wrapper h3{display:inline-block;color:#434343;font-size:17px;font-weight:500;margin:0}.rank-math-wizard-body--ready .rank-math-score-wrapper .rank-math-score-image{margin-top:30px}.rank-math-wizard-body--ready .rank-math-score-wrapper .rank-math-score-image img{max-width:100%;cursor:pointer}.rank-math-wizard-body--ready .rank-math-score-wrapper .switch{position:relative;display:inline-block;cursor:pointer;width:70px;height:28px;border-radius:18px;margin-left:15px;margin-top:-10px}.rank-math-wizard-body--ready .rank-math-score-wrapper .switch-input{position:absolute;top:0;left:0;opacity:0}.rank-math-wizard-body--ready .rank-math-score-wrapper .switch-label{position:relative;display:block;height:inherit;font-size:16px;font-weight:bold;line-height:1;border-radius:inherit;border:2px solid #4a535b}.rank-math-wizard-body--ready .rank-math-score-wrapper .switch-label:before,.rank-math-wizard-body--ready .rank-math-score-wrapper .switch-label:after{position:absolute;top:50%;margin-top:-.5em;transition:inherit}.rank-math-wizard-body--ready .rank-math-score-wrapper .switch-label:before{content:attr(data-off);right:11px;color:#4a535b}.rank-math-wizard-body--ready .rank-math-score-wrapper .switch-label:after{content:attr(data-on);left:11px;color:#FFFFFF;opacity:0}.rank-math-wizard-body--ready .rank-math-score-wrapper .switch-handle{position:absolute;top:9px;left:10px;width:15px;height:15px;background:#6e7780;border-radius:100%}.rank-math-wizard-body--ready .rank-math-score-wrapper .switch-label,.rank-math-wizard-body--ready .rank-math-score-wrapper .switch-handle{transition:All 0.3s ease;-webkit-transition:All 0.3s ease;-moz-transition:All 0.3s ease;-o-transition:All 0.3s ease}.rank-math-wizard-body--ready .rank-math-score-wrapper .switch-input:checked ~ .switch-label{background:#069de3;border-color:#069de3}.rank-math-wizard-body--ready .rank-math-score-wrapper .switch-input:checked ~ .switch-label:before{opacity:0}.rank-math-wizard-body--ready .rank-math-score-wrapper .switch-input:checked ~ .switch-label:after{opacity:1}.rank-math-wizard-body--ready .rank-math-score-wrapper .switch-input:checked ~ .switch-handle{left:45px;background:#fff}.rank-math-wizard-body--register .wrapper{max-width:700px}.rank-math-wizard-body--register .notice{margin-bottom:30px;display:none}.rank-math-wizard-body--register .notice-error{display:block}.rank-math-wizard-body--register .notice.is-dismissible{display:none}.rank-math-wizard-body--register .rank-math-registration-notice{display:block;margin:30px auto;text-align:left;background:#fefcee}.cmb2-id-accept-terms .cmb-td label{display:inline-block;width:80%}.cmb2-id-rank-math-usage-tracking .cmb-th{font-weight:normal;float:right;width:95% !important;max-width:none !important;color:#8c8c8c}.cmb2-id-rank-math-usage-tracking .cmb-th label{padding-top:0 !important;padding-right:0 !important}.cmb2-id-rank-math-usage-tracking .cmb-td{width:5% !important}@media screen and (max-width: 905px){.rank-math-wizard #cmb2-metabox-rank-math-wizard .cmb2-id-console-authorization-code .button-primary,.rank-math-wizard #cmb2-metabox-rank-math-wizard .cmb2-id-console-profile .button-primary{display:block;margin-top:10px;margin-left:0}.rank-math-wizard .cmb-row.cmb-multicheck-inline.with-description .cmb2-metabox-description{width:100%;margin-top:20px}}@media screen and (max-width: 782px){.rank-math-wizard .wizard-navigation a:before{font-size:12px}.rank-math-wizard .cmb2-wrap .cmb-row input[type=checkbox]:checked:before{font-size:30px}.rank-math-wizard #rank-math-compatibility-collapsible .form-table th,.rank-math-wizard #rank-math-compatibility-collapsible .form-table td{display:table-cell}}@media screen and (max-width: 782px) and (max-width: 640px){.rank-math-wizard .logo img{width:190px}.rank-math-wizard .wrapper{padding:30px 15px 35px}.rank-math-wizard .form-footer{margin-top:15px}.rank-math-wizard .cmb2-wrap .cmb-row .regular-text,.rank-math-wizard #cmb2-metabox-rank-math-wizard select{width:100%;max-width:100%}.rank-math-wizard .form-footer:not(.custom){text-align:center}}@media screen and (max-width: 782px) and (max-width: 595px){.rank-math-wizard .wizard-navigation{margin:25px auto 50px}.rank-math-wizard .wizard-navigation a:before{display:none}.rank-math-wizard .wizard-navigation a:first-child:before{position:relative;z-index:1;display:block;margin-top:-7px;background:#fff}.rank-math-wizard .wizard-navigation a:after{top:-12px}.rank-math-wizard.rank-math-wizard .cmb-form>header h1{font-size:24px}.rank-math-wizard.rank-math-wizard .cmb-form>header p{margin-top:10px}.rank-math-wizard.rank-math-wizard-body--ready .wizard-usage-tracking{padding:15px}.rank-math-wizard.rank-math-wizard-body--ready .wizard-share{margin-top:25px}.rank-math-wizard.rank-math-wizard-body--ready .wizard-next-steps{margin:25px 0 0}.rank-math-wizard.rank-math-wizard-body--ready .wizard-next-steps>div{width:100%;padding:0 0 25px}}body.rtl.rank-math-wizard-body--requirements .rank-math-collapsible-trigger{display:inline-block;margin-right:10px;margin-left:0;padding:0 5px 0 12px}body.rtl.rank-math-wizard-body--requirements h2>.dashicons{margin-right:0;margin-left:5px}body.rtl.rank-math-wizard-body--requirements .form-table td:last-child{text-align:left}body.rtl.rank-math-wizard-body--requirements .form-footer .button .dashicons-arrow-right-alt2:before{content:'\f341'}body.rtl .wizard-navigation .step-label+a:after{-webkit-transform:translate(20%, 23px);transform:translate(20%, 23px)}body.rtl .wizard-navigation a:after{-webkit-transform:translate(50%, 23px);transform:translate(50%, 23px)}body.rtl .return-to-dashboard a .dashicons-arrow-left-alt2:before{content:'\f345'}body.rtl.rank-math-wizard .form-footer:not(.custom) .button-secondary{margin-right:0;margin-left:10px}body.rtl.rank-math-wizard-body--ready .cmb-form>header .dashicons-yes{margin-right:0;margin-left:5px}body.rtl.rank-math-wizard-body--ready .wizard-share{margin-right:10px;margin-left:0}body.rtl.rank-math-wizard-body--ready .wizard-share a{display:inline-block;margin-right:5px;margin-left:0;padding-right:15px;padding-left:20px}body.rtl.rank-math-wizard-body--ready .wizard-share .dashicons{margin-right:0 !important;margin-left:5px !important}body.rtl.rank-math-wizard-body--ready .wizard-next-steps>div{float:right}body.rtl.rank-math-wizard-body--ready .wizard-next-steps .learn-more{padding-right:35px;padding-left:0}body.rtl.rank-math-wizard-body--ready .wizard-next-steps .learn-more .dashicons{margin-right:0;margin-left:13px}body.rtl.rank-math-wizard-body--ready .rank-math-score-wrapper .switch{margin-left:0;margin-right:15px}
|
@@ -1 +1 @@
|
|
1 |
-
!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=248)}({248:function(e,t,n){"use strict";var r;(r=jQuery)(function(){var e=r("#rank-math-feedback-form"),t=e.find(".rank-math-feedback-input-wrapper"),n=e.find("form"),o=r("#the-list").find('[data-slug
|
1 |
+
!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=248)}({248:function(e,t,n){"use strict";var r;(r=jQuery)(function(){var e=r("#rank-math-feedback-form"),t=e.find(".rank-math-feedback-input-wrapper"),n=e.find("form"),o=r("#the-list").find('[data-slug="seo-by-rank-math"] span.deactivate a');o.on("click",function(t){t.preventDefault(),e.fadeIn()}),e.on("change","input:radio",function(){var e=r(this).parent();t.removeClass("checked"),e.toggleClass("checked")}),e.on("click",".button-skip",function(){location.href=o.attr("href")}),e.on("click",".button-close",function(t){t.preventDefault(),e.fadeOut()}),n.on("submit",function(e){e.preventDefault(),n.find(".button-submit").text("").addClass("loading"),r.ajax({url:ajaxurl,type:"POST",dataType:"json",data:n.serialize()}).done(function(){location.href=o.attr("href")})})})}});
|
@@ -1 +1 @@
|
|
1 |
-
!function(t){var e={};function n(a){if(e[a])return e[a].exports;var r=e[a]={i:a,l:!1,exports:{}};return t[a].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=t,n.c=e,n.d=function(t,e,a){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:a})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(a,r,function(e){return t[e]}.bind(null,r));return a},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=257)}({257:function(t,e,n){"use strict";var a;(a=jQuery)(function(){window.rankMathSetupWizard={init:function(){rankMath.currentStep in this&&this[rankMath.currentStep](),a(document).on("cmb_init",function(){a(".cmb-multicheck-toggle",".multicheck-checked").trigger("click")})},compatibility:function(){a(".wizard-deactivate-plugin").on("click",function(t){t.preventDefault();var e=a(this);if(!e.hasClass("disabled")){var n=e.closest("tr");a.ajax({url:rankMath.ajaxurl,type:"POST",data:{action:"rank_math_deactivate_plugins",security:rankMath.security,plugin:e.data("plugin")}}).always(function(t){"1"===t?(n.find(".dashicons-warning").removeClass("dashicons-warning").addClass("dashicons-yes"),e.addClass("disabled").text(rankMath.deactivated)):console.log("Deactivation error")})}})},import:function(){var t=a("#import-progress"),e=a("#import-progress-bar"),n=0,r=0,i=function(t,e){var n=new Date,a=e.val()+"["+(10>n.getHours()?"0":"")+n.getHours()+":"+(10>n.getMinutes()?"0":"")+n.getMinutes()+":"+(10>n.getSeconds()?"0":"")+n.getSeconds()+"] "+t+"\n";e.text(a).scrollTop(e[0].scrollHeight-e.height()-20)},o=function(t){t>100&&(t=100),e.find(".number").html(t),e.find("#importBar").css("width",t+"%")};a(".button-import",".form-footer").on("click",function(n){if(n.preventDefault(),rankMath.isConfigured&&!window.confirm(rankMath.confirm))return!1;var s=a(this),u=a(".import-data:checkbox:checked"),l={},p=[];if(!u.length)return alert("Please select plugin to import data."),!1;a.each(u,function(t){var e=a(this).val(),n=a(this).parents(".cmb-group-description").next().find(":checkbox:checked"),i=n.data("active"),o=a(this).data("plugin");p.push(o);var c=a.map(n,function(t){return t.value});c.length>0&&i&&c.push("deactivate"),r+=c.length,l[e]={plugin:o,actions:c}}),s.prop("disabled",!0),t.show(),e.show(),e.find(".plugin-from").html(p.join()),i("Import started...",t),c(l,t,function(){o(100),s.prop("disabled",!1),a(".button",".form-footer").hide(),a(".button-continue").show()})});var c=function e(c,s,u){var l=Object.keys(c),p=l.length,h=c[l[0]],d=Object.keys(c)[0];if(delete c[d],0===p)return i("Import finished. Click on the button below to continue the Setup Wizard.",s),void u();!function t(e,c,s,u,l,p){if(0!==c.length){var h=c.shift(),d="deactivate"===h?"Deactivating "+p:"Importing "+h+" from "+p,g=Math.floor(100/r);u=u||1,i(d,s),a.ajax({url:rankMath.ajaxurl,type:"POST",data:{perform:h,pluginSlug:e,paged:u,action:"rank_math_import_plugin",security:rankMath.security}}).success(function(a){var r=1;a&&a.page&&a.total_pages>a.page&&(r=a.page+1,c.unshift(h)),a&&a.total_pages&&(g=Math.ceil(g/a.total_pages)),o(n+=g),i(a.success?a.message:a.error,s),t(e,c,s,r,l,p)}).error(function(n){i(n.statusText,s),t(e,c,s,null,l,p)})}else l()}(d,h.actions,t,null,function(){e(c,s,u)},h.plugin)};a(".import-data").on("change",function(){for(var t=this.checked,e=a(this).parents(".cmb-group-description").next().find(".cmb2-option"),n=0;e.length>n;n++)"checkbox"==e[n].type&&(e[n].checked=t);t&&("yoast"===a(this).val()?(a('.import-data[value="aioseo"]').prop("checked",!1).trigger("change"),a('.import-data[value="seopress"]').prop("checked",!1).trigger("change")):"aioseo"===a(this).val()?(a('.import-data[value="yoast"]').prop("checked",!1).trigger("change"),a('.import-data[value="seopress"]').prop("checked",!1).trigger("change")):"seopress"===a(this).val()&&(a('.import-data[value="yoast"]').prop("checked",!1).trigger("change"),a('.import-data[value="aioseo"]').prop("checked",!1).trigger("change")))}),a(".cmb-type-group .cmb2-checkbox-list .cmb2-option").on("click",function(){var t=a(this),e=t.attr("name"),n=t.parents("ul").find('input[name="'+e+'"]:checkbox:checked'),r=t.parents("ul").find('input[name="'+e+'"]');n.length===r.length&&t.parents(".cmb-type-group").find(".import-data").prop("checked",!0).trigger("change")}),a(".button-deactivate-plugins").on("click",function(t){var e=a(this);e.parents("form").find("input[data-active]").length&&(t.preventDefault(),e.text(e.data("deactivate-message")),a.ajax({url:rankMath.ajaxurl,type:"POST",data:{action:"rank_math_deactivate_plugins",security:rankMath.security,plugin:"all"}}).success(function(t){e.parents("form").trigger("submit")}).error(function(t){alert("Something went wrong! Please try again later.")}))})},yoursite:function(){a("#rank-math-search-input").on("input keypress",function(t){var e=a(this),n=e.next();if(13===t.keyCode||13===t.which){if("createEvent"in document){var r=this.ownerDocument,i=r.createEvent("MouseEvents");i.initMouseEvent("click",!0,!0,r.defaultView,1,0,0,0,0,!1,!1,!1,!1,0,null),n[0].dispatchEvent(i)}return!1}n.attr("href",n.data("href")+encodeURIComponent(e.val()))});var t=a("#business_type");0!==parseInt(t.data("default"))&&a("#site_type").on("change",function(){var e=a(this).val();"news"!==e&&"webshop"!==e&&"otherbusiness"!==e||t.val("Organization").trigger("change"),"business"===e&&t.val("LocalBusiness").trigger("change")})},searchconsole:function(){a("#console_authorization_code").on("paste",function(){var t=a(this).next(".button");setTimeout(function(){t.trigger("click")},100)})},ready:function(){a("#show-seo-score").on("change",function(t){a.ajax({url:rankMath.api.root+"rankmath/v1/enableScore",method:"POST",beforeSend:function(t){t.setRequestHeader("X-WP-Nonce",rankMath.api.nonce)},data:{enable:a(this).is(":checked")}}).done(function(t){console.log(t)})})}},window.rankMathSetupWizard.init()})}});
|
1 |
+
!function(t){var e={};function n(a){if(e[a])return e[a].exports;var r=e[a]={i:a,l:!1,exports:{}};return t[a].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=t,n.c=e,n.d=function(t,e,a){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:a})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(a,r,function(e){return t[e]}.bind(null,r));return a},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=257)}({257:function(t,e,n){"use strict";var a;(a=jQuery)(function(){window.rankMathSetupWizard={init:function(){rankMath.currentStep in this&&this[rankMath.currentStep](),a(document).on("cmb_init",function(){a(".cmb-multicheck-toggle",".multicheck-checked").trigger("click")})},compatibility:function(){a(".wizard-deactivate-plugin").on("click",function(t){t.preventDefault();var e=a(this);if(!e.hasClass("disabled")){var n=e.closest("tr");a.ajax({url:rankMath.ajaxurl,type:"POST",data:{action:"rank_math_deactivate_plugins",security:rankMath.security,plugin:e.data("plugin")}}).always(function(t){"1"===t?(n.find(".dashicons-warning").removeClass("dashicons-warning").addClass("dashicons-yes"),e.addClass("disabled").text(rankMath.deactivated)):console.log("Deactivation error")})}})},import:function(){var t=a("#import-progress"),e=a("#import-progress-bar"),n=0,r=0,i=function(t,e){var n=new Date,a=e.val()+"["+(10>n.getHours()?"0":"")+n.getHours()+":"+(10>n.getMinutes()?"0":"")+n.getMinutes()+":"+(10>n.getSeconds()?"0":"")+n.getSeconds()+"] "+t+"\n";e.text(a).scrollTop(e[0].scrollHeight-e.height()-20)},o=function(t){t>100&&(t=100),e.find(".number").html(t),e.find("#importBar").css("width",t+"%")};a(".button-import",".form-footer").on("click",function(n){if(n.preventDefault(),rankMath.isConfigured&&!window.confirm(rankMath.confirm))return!1;var s=a(this),u=a(".import-data:checkbox:checked"),l={},p=[];if(!u.length)return alert("Please select plugin to import data."),!1;a.each(u,function(t){var e=a(this).val(),n=a(this).parents(".cmb-group-description").next().find(":checkbox:checked"),i=n.data("active"),o=a(this).data("plugin");p.push(o);var c=a.map(n,function(t){return t.value});c.length>0&&i&&c.push("deactivate"),r+=c.length,l[e]={plugin:o,actions:c}}),s.prop("disabled",!0),t.show(),e.show(),e.find(".plugin-from").html(p.join()),i("Import started...",t),c(l,t,function(){o(100),s.prop("disabled",!1),a(".button",".form-footer").hide(),a(".button-continue").show()})});var c=function e(c,s,u){var l=Object.keys(c),p=l.length,h=c[l[0]],d=Object.keys(c)[0];if(delete c[d],0===p)return i("Import finished. Click on the button below to continue the Setup Wizard.",s),void u();!function t(e,c,s,u,l,p){if(0!==c.length){var h=c.shift(),d="deactivate"===h?"Deactivating "+p:"Importing "+h+" from "+p,g=Math.floor(100/r);u=u||1,i(d,s),a.ajax({url:rankMath.ajaxurl,type:"POST",data:{perform:h,pluginSlug:e,paged:u,action:"rank_math_import_plugin",security:rankMath.security}}).success(function(a){var r=1;a&&a.page&&a.total_pages>a.page&&(r=a.page+1,c.unshift(h)),a&&a.total_pages&&(g=Math.ceil(g/a.total_pages)),o(n+=g),i(a.success?a.message:a.error,s),t(e,c,s,r,l,p)}).error(function(n){i(n.statusText,s),t(e,c,s,null,l,p)})}else l()}(d,h.actions,t,null,function(){e(c,s,u)},h.plugin)};a(".import-data").on("change",function(){for(var t=this.checked,e=a(this).parents(".cmb-group-description").next().find(".cmb2-option"),n=0;e.length>n;n++)"checkbox"==e[n].type&&(e[n].checked=t);t&&("yoast"===a(this).val()?(a('.import-data[value="aioseo"]').prop("checked",!1).trigger("change"),a('.import-data[value="seopress"]').prop("checked",!1).trigger("change")):"aioseo"===a(this).val()?(a('.import-data[value="yoast"]').prop("checked",!1).trigger("change"),a('.import-data[value="seopress"]').prop("checked",!1).trigger("change")):"seopress"===a(this).val()&&(a('.import-data[value="yoast"]').prop("checked",!1).trigger("change"),a('.import-data[value="aioseo"]').prop("checked",!1).trigger("change")))}),a(".cmb-type-group .cmb2-checkbox-list .cmb2-option").on("click",function(){var t=a(this),e=t.attr("name"),n=t.parents("ul").find('input[name="'+e+'"]:checkbox:checked'),r=t.parents("ul").find('input[name="'+e+'"]');n.length===r.length&&t.parents(".cmb-type-group").find(".import-data").prop("checked",!0).trigger("change")}),a(".button-deactivate-plugins").on("click",function(t){var e=a(this);e.parents("form").find("input[data-active]").length&&(t.preventDefault(),e.text(e.data("deactivate-message")),a.ajax({url:rankMath.ajaxurl,type:"POST",data:{action:"rank_math_deactivate_plugins",security:rankMath.security,plugin:"all"}}).success(function(t){e.parents("form").trigger("submit")}).error(function(t){alert("Something went wrong! Please try again later.")}))})},yoursite:function(){a("#rank-math-search-input").on("input keypress",function(t){var e=a(this),n=e.next();if(13===t.keyCode||13===t.which){if("createEvent"in document){var r=this.ownerDocument,i=r.createEvent("MouseEvents");i.initMouseEvent("click",!0,!0,r.defaultView,1,0,0,0,0,!1,!1,!1,!1,0,null),n[0].dispatchEvent(i)}return!1}n.attr("href",n.data("href")+encodeURIComponent(e.val()))});var t=a("#business_type");0!==parseInt(t.data("default"))&&a("#site_type").on("change",function(){var e=a(this).val();"news"!==e&&"webshop"!==e&&"otherbusiness"!==e||t.val("Organization").trigger("change"),"business"===e&&t.val("LocalBusiness").trigger("change")})},searchconsole:function(){a("#console_authorization_code").on("paste",function(){var t=a(this).next(".button");setTimeout(function(){t.trigger("click")},100)})},ready:function(){a("#show-seo-score").on("change",function(t){a.ajax({url:rankMath.api.root+"rankmath/v1/enableScore",method:"POST",beforeSend:function(t){t.setRequestHeader("X-WP-Nonce",rankMath.api.nonce)},data:{enable:a(this).is(":checked")}}).done(function(t){console.log(t)})}),a(".rank-math-score-image img").on("click",function(t){return t.preventDefault(),a("#show-seo-score").trigger("click"),!1})}},window.rankMathSetupWizard.init()})}});
|
@@ -34,7 +34,7 @@ class Admin implements Runner {
|
|
34 |
*/
|
35 |
public function hooks() {
|
36 |
$this->action( 'init', 'flush', 999 );
|
37 |
-
$this->filter( 'user_contactmethods', '
|
38 |
$this->action( 'save_post', 'canonical_check_notice' );
|
39 |
$this->action( 'wp_dashboard_setup', 'add_dashboard_widgets' );
|
40 |
$this->action( 'cmb2_save_options-page_fields', 'update_is_configured_value', 10, 2 );
|
@@ -46,7 +46,7 @@ class Admin implements Runner {
|
|
46 |
}
|
47 |
|
48 |
/**
|
49 |
-
*
|
50 |
*/
|
51 |
public function flush() {
|
52 |
if ( get_option( 'rank_math_flush_rewrite' ) ) {
|
@@ -56,13 +56,12 @@ class Admin implements Runner {
|
|
56 |
}
|
57 |
|
58 |
/**
|
59 |
-
*
|
60 |
-
* These are used with the Facebook author, rel="author" and Twitter cards implementation.
|
61 |
*
|
62 |
-
* @param array $contactmethods
|
63 |
-
* @return array
|
64 |
*/
|
65 |
-
public function
|
66 |
$contactmethods['twitter'] = esc_html__( 'Twitter username (without @)', 'rank-math' );
|
67 |
$contactmethods['facebook'] = esc_html__( 'Facebook profile URL', 'rank-math' );
|
68 |
|
@@ -99,7 +98,7 @@ class Admin implements Runner {
|
|
99 |
continue;
|
100 |
}
|
101 |
?>
|
102 |
-
<a class="nav-tab<?php echo Param::get( 'view', 'modules' ) === $id ? ' nav-tab-active' : ''; ?>" href="<?php echo esc_url( Helper::get_admin_url( $link['url'], $link['args'] ) ); ?>" title="<?php echo $link['title']; ?>"><?php echo $link['title']; ?></a>
|
103 |
<?php endforeach; ?>
|
104 |
</h2>
|
105 |
<?php
|
@@ -149,7 +148,7 @@ class Admin implements Runner {
|
|
149 |
}
|
150 |
|
151 |
/**
|
152 |
-
*
|
153 |
*/
|
154 |
public function is_keyword_new() {
|
155 |
global $wpdb;
|
@@ -257,7 +256,7 @@ class Admin implements Runner {
|
|
257 |
* Set term query.
|
258 |
*
|
259 |
* @param array $query Array of query.
|
260 |
-
* @param int $post_id Post
|
261 |
* @param string $taxonomy Taxonomy to get terms for.
|
262 |
*/
|
263 |
private function set_term_query( &$query, $post_id, $taxonomy ) {
|
34 |
*/
|
35 |
public function hooks() {
|
36 |
$this->action( 'init', 'flush', 999 );
|
37 |
+
$this->filter( 'user_contactmethods', 'update_user_contactmethods' );
|
38 |
$this->action( 'save_post', 'canonical_check_notice' );
|
39 |
$this->action( 'wp_dashboard_setup', 'add_dashboard_widgets' );
|
40 |
$this->action( 'cmb2_save_options-page_fields', 'update_is_configured_value', 10, 2 );
|
46 |
}
|
47 |
|
48 |
/**
|
49 |
+
* Flush the rewrite rules once if the rank_math_flush_rewrite option is set.
|
50 |
*/
|
51 |
public function flush() {
|
52 |
if ( get_option( 'rank_math_flush_rewrite' ) ) {
|
56 |
}
|
57 |
|
58 |
/**
|
59 |
+
* Add Facebook and Twitter as contact method for the users.
|
|
|
60 |
*
|
61 |
+
* @param array $contactmethods Current contactmethods.
|
62 |
+
* @return array New contactmethods with extra items.
|
63 |
*/
|
64 |
+
public function update_user_contactmethods( $contactmethods ) {
|
65 |
$contactmethods['twitter'] = esc_html__( 'Twitter username (without @)', 'rank-math' );
|
66 |
$contactmethods['facebook'] = esc_html__( 'Facebook profile URL', 'rank-math' );
|
67 |
|
98 |
continue;
|
99 |
}
|
100 |
?>
|
101 |
+
<a class="nav-tab<?php echo Param::get( 'view', 'modules' ) === sanitize_html_class( $id ) ? ' nav-tab-active' : ''; ?>" href="<?php echo esc_url( Helper::get_admin_url( $link['url'], $link['args'] ) ); ?>" title="<?php echo esc_attr( $link['title'] ); ?>"><?php echo esc_html( $link['title'] ); ?></a>
|
102 |
<?php endforeach; ?>
|
103 |
</h2>
|
104 |
<?php
|
148 |
}
|
149 |
|
150 |
/**
|
151 |
+
* Check if the keyword has been used before for another post.
|
152 |
*/
|
153 |
public function is_keyword_new() {
|
154 |
global $wpdb;
|
256 |
* Set term query.
|
257 |
*
|
258 |
* @param array $query Array of query.
|
259 |
+
* @param int $post_id Post ID to get terms from.
|
260 |
* @param string $taxonomy Taxonomy to get terms for.
|
261 |
*/
|
262 |
private function set_term_query( &$query, $post_id, $taxonomy ) {
|
@@ -40,7 +40,7 @@ class Assets implements Runner {
|
|
40 |
}
|
41 |
|
42 |
/**
|
43 |
-
* Register styles and scripts
|
44 |
*/
|
45 |
public function register() {
|
46 |
|
@@ -85,13 +85,13 @@ class Assets implements Runner {
|
|
85 |
);
|
86 |
|
87 |
/**
|
88 |
-
* Allow other plugins to register styles or scripts
|
89 |
*/
|
90 |
$this->do_action( 'admin/register_scripts' );
|
91 |
}
|
92 |
|
93 |
/**
|
94 |
-
* Enqueue
|
95 |
*/
|
96 |
public function enqueue() {
|
97 |
$screen = get_current_screen();
|
@@ -107,7 +107,7 @@ class Assets implements Runner {
|
|
107 |
Helper::add_json( 'maxTags', Helper::is_site_connected() ? 5 : 1 );
|
108 |
|
109 |
/**
|
110 |
-
* Allow other plugins to enqueue styles or scripts
|
111 |
*/
|
112 |
$this->do_action( 'admin/enqueue_scripts' );
|
113 |
}
|
@@ -125,6 +125,7 @@ class Assets implements Runner {
|
|
125 |
|
126 |
/**
|
127 |
* Overwrite wplink script file.
|
|
|
128 |
*/
|
129 |
public function overwrite_wplink() {
|
130 |
|
40 |
}
|
41 |
|
42 |
/**
|
43 |
+
* Register styles and scripts.
|
44 |
*/
|
45 |
public function register() {
|
46 |
|
85 |
);
|
86 |
|
87 |
/**
|
88 |
+
* Allow other plugins to register/deregister admin styles or scripts after plugin assets.
|
89 |
*/
|
90 |
$this->do_action( 'admin/register_scripts' );
|
91 |
}
|
92 |
|
93 |
/**
|
94 |
+
* Enqueue styles and scripts.
|
95 |
*/
|
96 |
public function enqueue() {
|
97 |
$screen = get_current_screen();
|
107 |
Helper::add_json( 'maxTags', Helper::is_site_connected() ? 5 : 1 );
|
108 |
|
109 |
/**
|
110 |
+
* Allow other plugins to enqueue/dequeue admin styles or scripts after plugin assets.
|
111 |
*/
|
112 |
$this->do_action( 'admin/enqueue_scripts' );
|
113 |
}
|
125 |
|
126 |
/**
|
127 |
* Overwrite wplink script file.
|
128 |
+
* Rank Math adds new options in the link popup when editing a post.
|
129 |
*/
|
130 |
public function overwrite_wplink() {
|
131 |
|
@@ -71,7 +71,7 @@ class Deactivate_Survey implements Runner {
|
|
71 |
}
|
72 |
|
73 |
/**
|
74 |
-
*
|
75 |
*/
|
76 |
public function deactivate_scripts() {
|
77 |
$screen = get_current_screen();
|
71 |
}
|
72 |
|
73 |
/**
|
74 |
+
* Output deactivate feedback popup.
|
75 |
*/
|
76 |
public function deactivate_scripts() {
|
77 |
$screen = get_current_screen();
|
@@ -92,7 +92,7 @@ class Import_Export implements Runner {
|
|
92 |
}
|
93 |
|
94 |
/**
|
95 |
-
* Handles AJAX plugin
|
96 |
*/
|
97 |
public function clean_plugin() {
|
98 |
$this->verify_nonce( 'rank-math-ajax-nonce' );
|
@@ -109,7 +109,7 @@ class Import_Export implements Runner {
|
|
109 |
}
|
110 |
|
111 |
/**
|
112 |
-
* Handles AJAX plugin
|
113 |
*/
|
114 |
public function import_plugin() {
|
115 |
$this->verify_nonce( 'rank-math-ajax-nonce' );
|
@@ -181,7 +181,7 @@ class Import_Export implements Runner {
|
|
181 |
}
|
182 |
|
183 |
/**
|
184 |
-
* Run backup actions
|
185 |
*
|
186 |
* @param string $action Action to perform.
|
187 |
* @param array $key Key to backup.
|
@@ -260,7 +260,7 @@ class Import_Export implements Runner {
|
|
260 |
}
|
261 |
|
262 |
/**
|
263 |
-
* Import has valid
|
264 |
*
|
265 |
* @return mixed
|
266 |
*/
|
@@ -386,7 +386,7 @@ class Import_Export implements Runner {
|
|
386 |
/**
|
387 |
* Gets export data.
|
388 |
*
|
389 |
-
* @param array $panels Which panels
|
390 |
* @return array
|
391 |
*/
|
392 |
private function get_export_data( array $panels = [] ) {
|
@@ -432,7 +432,7 @@ class Import_Export implements Runner {
|
|
432 |
}
|
433 |
|
434 |
/**
|
435 |
-
*
|
436 |
*
|
437 |
* @param string $perform Action to check.
|
438 |
*
|
92 |
}
|
93 |
|
94 |
/**
|
95 |
+
* Handles AJAX run plugin clean.
|
96 |
*/
|
97 |
public function clean_plugin() {
|
98 |
$this->verify_nonce( 'rank-math-ajax-nonce' );
|
109 |
}
|
110 |
|
111 |
/**
|
112 |
+
* Handles AJAX run plugin import.
|
113 |
*/
|
114 |
public function import_plugin() {
|
115 |
$this->verify_nonce( 'rank-math-ajax-nonce' );
|
181 |
}
|
182 |
|
183 |
/**
|
184 |
+
* Run backup actions.
|
185 |
*
|
186 |
* @param string $action Action to perform.
|
187 |
* @param array $key Key to backup.
|
260 |
}
|
261 |
|
262 |
/**
|
263 |
+
* Import has valid file.
|
264 |
*
|
265 |
* @return mixed
|
266 |
*/
|
386 |
/**
|
387 |
* Gets export data.
|
388 |
*
|
389 |
+
* @param array $panels Which panels to export. All panels will be exported if this param is empty.
|
390 |
* @return array
|
391 |
*/
|
392 |
private function get_export_data( array $panels = [] ) {
|
432 |
}
|
433 |
|
434 |
/**
|
435 |
+
* Check if given action is in the list of allowed actions.
|
436 |
*
|
437 |
* @param string $perform Action to check.
|
438 |
*
|
@@ -49,10 +49,10 @@ class Metabox implements Runner {
|
|
49 |
}
|
50 |
|
51 |
/**
|
52 |
-
* Enqueue
|
53 |
*/
|
54 |
public function enqueue() {
|
55 |
-
// Early bail
|
56 |
$screen = get_current_screen();
|
57 |
if (
|
58 |
! in_array( $screen->base, array( 'post', 'term', 'profile', 'user-edit' ), true ) ||
|
@@ -203,7 +203,7 @@ class Metabox implements Runner {
|
|
203 |
$allowed_post_types[] = $post_type;
|
204 |
}
|
205 |
|
206 |
-
// Early
|
207 |
if ( empty( $allowed_post_types ) ) {
|
208 |
return;
|
209 |
}
|
@@ -239,7 +239,7 @@ class Metabox implements Runner {
|
|
239 |
}
|
240 |
|
241 |
/**
|
242 |
-
* Output the WordPress editor.
|
243 |
*
|
244 |
* @param object $term Current taxonomy term object.
|
245 |
*/
|
@@ -292,7 +292,7 @@ class Metabox implements Runner {
|
|
292 |
*/
|
293 |
public function invalidate_facebook_object_cache( $field_id, $updated, $action, $field ) {
|
294 |
|
295 |
-
// Early
|
296 |
if ( ! in_array( $field_id, [ 'rank_math_facebook_title', 'rank_math_facebook_image', 'rank_math_facebook_description' ], true ) || ! $updated ) {
|
297 |
return;
|
298 |
}
|
@@ -300,7 +300,7 @@ class Metabox implements Runner {
|
|
300 |
$app_id = Helper::get_settings( 'titles.facebook_app_id' );
|
301 |
$secret = Helper::get_settings( 'titles.facebook_secret' );
|
302 |
|
303 |
-
// Early
|
304 |
if ( ! $app_id || ! $secret ) {
|
305 |
return;
|
306 |
}
|
@@ -318,7 +318,7 @@ class Metabox implements Runner {
|
|
318 |
}
|
319 |
|
320 |
/**
|
321 |
-
* Get object types to register
|
322 |
*
|
323 |
* @return array
|
324 |
*/
|
@@ -341,7 +341,7 @@ class Metabox implements Runner {
|
|
341 |
}
|
342 |
|
343 |
/**
|
344 |
-
* Get metabox priority
|
345 |
*
|
346 |
* @return string
|
347 |
*/
|
@@ -352,6 +352,9 @@ class Metabox implements Runner {
|
|
352 |
);
|
353 |
$priority = 'product' === $post_type ? 'default' : 'high';
|
354 |
|
|
|
|
|
|
|
355 |
return $this->do_filter( 'metabox/priority', $priority );
|
356 |
}
|
357 |
|
@@ -374,7 +377,7 @@ class Metabox implements Runner {
|
|
374 |
}
|
375 |
|
376 |
/**
|
377 |
-
*
|
378 |
*
|
379 |
* @return bool
|
380 |
*/
|
@@ -386,7 +389,7 @@ class Metabox implements Runner {
|
|
386 |
}
|
387 |
|
388 |
/**
|
389 |
-
*
|
390 |
*
|
391 |
* @return bool
|
392 |
*/
|
@@ -397,7 +400,7 @@ class Metabox implements Runner {
|
|
397 |
}
|
398 |
|
399 |
/**
|
400 |
-
* Get tabs.
|
401 |
*
|
402 |
* @return array
|
403 |
*/
|
@@ -428,7 +431,7 @@ class Metabox implements Runner {
|
|
428 |
];
|
429 |
|
430 |
/**
|
431 |
-
* Allow developers to add new tabs
|
432 |
*
|
433 |
* @param array $tabs Array of tabs.
|
434 |
*/
|
@@ -436,7 +439,7 @@ class Metabox implements Runner {
|
|
436 |
}
|
437 |
|
438 |
/**
|
439 |
-
* Assessor data
|
440 |
*/
|
441 |
private function assessor() {
|
442 |
$data = [
|
@@ -453,7 +456,7 @@ class Metabox implements Runner {
|
|
453 |
}
|
454 |
|
455 |
/**
|
456 |
-
* Return power words
|
457 |
*
|
458 |
* @return array
|
459 |
*/
|
@@ -463,7 +466,7 @@ class Metabox implements Runner {
|
|
463 |
}
|
464 |
|
465 |
/**
|
466 |
-
* Check if any TOC plugin
|
467 |
*
|
468 |
* @return bool
|
469 |
*/
|
49 |
}
|
50 |
|
51 |
/**
|
52 |
+
* Enqueue styles and scripts for the metabox.
|
53 |
*/
|
54 |
public function enqueue() {
|
55 |
+
// Early bail if we're not on the valid screens or if it's WPBakery's Frontend editor.
|
56 |
$screen = get_current_screen();
|
57 |
if (
|
58 |
! in_array( $screen->base, array( 'post', 'term', 'profile', 'user-edit' ), true ) ||
|
203 |
$allowed_post_types[] = $post_type;
|
204 |
}
|
205 |
|
206 |
+
// Early bail.
|
207 |
if ( empty( $allowed_post_types ) ) {
|
208 |
return;
|
209 |
}
|
239 |
}
|
240 |
|
241 |
/**
|
242 |
+
* Output the WordPress editor for term SEO description.
|
243 |
*
|
244 |
* @param object $term Current taxonomy term object.
|
245 |
*/
|
292 |
*/
|
293 |
public function invalidate_facebook_object_cache( $field_id, $updated, $action, $field ) {
|
294 |
|
295 |
+
// Early bail.
|
296 |
if ( ! in_array( $field_id, [ 'rank_math_facebook_title', 'rank_math_facebook_image', 'rank_math_facebook_description' ], true ) || ! $updated ) {
|
297 |
return;
|
298 |
}
|
300 |
$app_id = Helper::get_settings( 'titles.facebook_app_id' );
|
301 |
$secret = Helper::get_settings( 'titles.facebook_secret' );
|
302 |
|
303 |
+
// Early bail.
|
304 |
if ( ! $app_id || ! $secret ) {
|
305 |
return;
|
306 |
}
|
318 |
}
|
319 |
|
320 |
/**
|
321 |
+
* Get object types to register metaboxes to.
|
322 |
*
|
323 |
* @return array
|
324 |
*/
|
341 |
}
|
342 |
|
343 |
/**
|
344 |
+
* Get metabox priority.
|
345 |
*
|
346 |
* @return string
|
347 |
*/
|
352 |
);
|
353 |
$priority = 'product' === $post_type ? 'default' : 'high';
|
354 |
|
355 |
+
/**
|
356 |
+
* Filter: Change metabox priority.
|
357 |
+
*/
|
358 |
return $this->do_filter( 'metabox/priority', $priority );
|
359 |
}
|
360 |
|
377 |
}
|
378 |
|
379 |
/**
|
380 |
+
* Check if user has the necessary capabilities for seeing the meta box.
|
381 |
*
|
382 |
* @return bool
|
383 |
*/
|
389 |
}
|
390 |
|
391 |
/**
|
392 |
+
* Check if user meta box is enabled.
|
393 |
*
|
394 |
* @return bool
|
395 |
*/
|
400 |
}
|
401 |
|
402 |
/**
|
403 |
+
* Get metabox tabs.
|
404 |
*
|
405 |
* @return array
|
406 |
*/
|
431 |
];
|
432 |
|
433 |
/**
|
434 |
+
* Allow developers to add new tabs in the main metabox.
|
435 |
*
|
436 |
* @param array $tabs Array of tabs.
|
437 |
*/
|
439 |
}
|
440 |
|
441 |
/**
|
442 |
+
* Assessor data.
|
443 |
*/
|
444 |
private function assessor() {
|
445 |
$data = [
|
456 |
}
|
457 |
|
458 |
/**
|
459 |
+
* Return power words.
|
460 |
*
|
461 |
* @return array
|
462 |
*/
|
466 |
}
|
467 |
|
468 |
/**
|
469 |
+
* Check if any TOC plugin is installed.
|
470 |
*
|
471 |
* @return bool
|
472 |
*/
|
@@ -34,7 +34,7 @@ class Notices implements Runner {
|
|
34 |
}
|
35 |
|
36 |
/**
|
37 |
-
* Run all notices routine
|
38 |
*/
|
39 |
public function notices() {
|
40 |
$this->is_plugin_configured();
|
@@ -60,7 +60,7 @@ class Notices implements Runner {
|
|
60 |
}
|
61 |
|
62 |
/**
|
63 |
-
* If plugin configuration not done
|
64 |
*/
|
65 |
private function is_plugin_configured() {
|
66 |
if ( 'mts-install-plugins' === Param::get( 'page' ) ) {
|
@@ -83,7 +83,7 @@ class Notices implements Runner {
|
|
83 |
}
|
84 |
|
85 |
/**
|
86 |
-
*
|
87 |
*/
|
88 |
private function new_post_type() {
|
89 |
$known = get_option( 'rank_math_known_post_types', [] );
|
34 |
}
|
35 |
|
36 |
/**
|
37 |
+
* Run all notices routine.
|
38 |
*/
|
39 |
public function notices() {
|
40 |
$this->is_plugin_configured();
|
60 |
}
|
61 |
|
62 |
/**
|
63 |
+
* If plugin configuration not done.
|
64 |
*/
|
65 |
private function is_plugin_configured() {
|
66 |
if ( 'mts-install-plugins' === Param::get( 'page' ) ) {
|
83 |
}
|
84 |
|
85 |
/**
|
86 |
+
* Add notification if a new post type is detected.
|
87 |
*/
|
88 |
private function new_post_type() {
|
89 |
$known = get_option( 'rank_math_known_post_types', [] );
|
@@ -92,7 +92,7 @@ class Option_Center implements Runner {
|
|
92 |
];
|
93 |
|
94 |
/**
|
95 |
-
* Allow developers to add new
|
96 |
*
|
97 |
* @param array $tabs
|
98 |
*/
|
@@ -109,7 +109,7 @@ class Option_Center implements Runner {
|
|
109 |
}
|
110 |
|
111 |
/**
|
112 |
-
* Remove
|
113 |
*
|
114 |
* @param array $tabs Hold tabs for optional panel.
|
115 |
* @return array
|
@@ -173,7 +173,7 @@ class Option_Center implements Runner {
|
|
173 |
];
|
174 |
|
175 |
/**
|
176 |
-
* Allow developers to add new section
|
177 |
*
|
178 |
* @param array $tabs
|
179 |
*/
|
@@ -196,9 +196,9 @@ class Option_Center implements Runner {
|
|
196 |
}
|
197 |
|
198 |
/**
|
199 |
-
* Add post type tabs
|
200 |
*
|
201 |
-
* @param array $tabs
|
202 |
* @return array
|
203 |
*/
|
204 |
public function title_post_type_settings( $tabs ) {
|
@@ -241,9 +241,9 @@ class Option_Center implements Runner {
|
|
241 |
}
|
242 |
|
243 |
/**
|
244 |
-
* Add taxonomy tabs
|
245 |
*
|
246 |
-
* @param array $tabs
|
247 |
* @return array
|
248 |
*/
|
249 |
public function title_taxonomy_settings( $tabs ) {
|
@@ -305,10 +305,9 @@ class Option_Center implements Runner {
|
|
305 |
public function check_updated_fields( $object_id, $updated ) {
|
306 |
|
307 |
/**
|
308 |
-
* Allow developers to add option fields
|
309 |
-
* And if updated flush the rewrite rules.
|
310 |
*
|
311 |
-
* @param array $flush_fields Array of
|
312 |
*/
|
313 |
$flush_fields = $this->do_filter(
|
314 |
'flush_fields',
|
92 |
];
|
93 |
|
94 |
/**
|
95 |
+
* Allow developers to add new sections in the General Settings.
|
96 |
*
|
97 |
* @param array $tabs
|
98 |
*/
|
109 |
}
|
110 |
|
111 |
/**
|
112 |
+
* Remove unneeded tabs from the General Settings.
|
113 |
*
|
114 |
* @param array $tabs Hold tabs for optional panel.
|
115 |
* @return array
|
173 |
];
|
174 |
|
175 |
/**
|
176 |
+
* Allow developers to add new section in the Title Settings.
|
177 |
*
|
178 |
* @param array $tabs
|
179 |
*/
|
196 |
}
|
197 |
|
198 |
/**
|
199 |
+
* Add post type tabs in the Title Settings panel.
|
200 |
*
|
201 |
+
* @param array $tabs Holds the tabs of the options panel.
|
202 |
* @return array
|
203 |
*/
|
204 |
public function title_post_type_settings( $tabs ) {
|
241 |
}
|
242 |
|
243 |
/**
|
244 |
+
* Add taxonomy tabs in the Title Settings panel.
|
245 |
*
|
246 |
+
* @param array $tabs Holds the tabs of the options panel.
|
247 |
* @return array
|
248 |
*/
|
249 |
public function title_taxonomy_settings( $tabs ) {
|
305 |
public function check_updated_fields( $object_id, $updated ) {
|
306 |
|
307 |
/**
|
308 |
+
* Filter: Allow developers to add option fields which will flush the rewrite rules when updated.
|
|
|
309 |
*
|
310 |
+
* @param array $flush_fields Array of field IDs for which we need to flush.
|
311 |
*/
|
312 |
$flush_fields = $this->do_filter(
|
313 |
'flush_fields',
|
@@ -104,7 +104,7 @@ class Options {
|
|
104 |
}
|
105 |
|
106 |
/**
|
107 |
-
* Create option object and add settings
|
108 |
*/
|
109 |
function register_option_page() {
|
110 |
$cmb = new_cmb2_box(
|
@@ -176,7 +176,7 @@ class Options {
|
|
176 |
}
|
177 |
|
178 |
/**
|
179 |
-
* Set the default values if not set
|
180 |
*
|
181 |
* @param CMB2 $cmb The CMB2 object to hookup.
|
182 |
*/
|
@@ -195,7 +195,7 @@ class Options {
|
|
195 |
}
|
196 |
|
197 |
/**
|
198 |
-
* Reset options
|
199 |
*/
|
200 |
public function reset_options() {
|
201 |
$url = wp_get_referer();
|
@@ -211,7 +211,7 @@ class Options {
|
|
211 |
}
|
212 |
|
213 |
/**
|
214 |
-
* Enqueue styles and scripts
|
215 |
*/
|
216 |
public function enqueue() {
|
217 |
$screen = get_current_screen();
|
@@ -232,7 +232,7 @@ class Options {
|
|
232 |
}
|
233 |
|
234 |
/**
|
235 |
-
* Add classes to <body> of WordPress admin
|
236 |
*
|
237 |
* @param string $classes Space-separated list of CSS classes.
|
238 |
* @return string
|
@@ -242,7 +242,7 @@ class Options {
|
|
242 |
}
|
243 |
|
244 |
/**
|
245 |
-
* Display Setting on a page
|
246 |
*
|
247 |
* @param CMB2_Options $machine CUrrent CMB2 box object.
|
248 |
*/
|
@@ -286,7 +286,7 @@ class Options {
|
|
286 |
}
|
287 |
|
288 |
/**
|
289 |
-
*
|
290 |
*
|
291 |
* @return bool
|
292 |
*/
|
@@ -295,7 +295,7 @@ class Options {
|
|
295 |
}
|
296 |
|
297 |
/**
|
298 |
-
* Get setting tabs
|
299 |
*
|
300 |
* @return array
|
301 |
*/
|
@@ -313,7 +313,7 @@ class Options {
|
|
313 |
}
|
314 |
|
315 |
/**
|
316 |
-
* Locate tab options file
|
317 |
*
|
318 |
* @param string $id Tab id.
|
319 |
* @param array $tab Tab options.
|
104 |
}
|
105 |
|
106 |
/**
|
107 |
+
* Create option object and add settings.
|
108 |
*/
|
109 |
function register_option_page() {
|
110 |
$cmb = new_cmb2_box(
|
176 |
}
|
177 |
|
178 |
/**
|
179 |
+
* Set the default values if not set.
|
180 |
*
|
181 |
* @param CMB2 $cmb The CMB2 object to hookup.
|
182 |
*/
|
195 |
}
|
196 |
|
197 |
/**
|
198 |
+
* Reset options.
|
199 |
*/
|
200 |
public function reset_options() {
|
201 |
$url = wp_get_referer();
|
211 |
}
|
212 |
|
213 |
/**
|
214 |
+
* Enqueue styles and scripts.
|
215 |
*/
|
216 |
public function enqueue() {
|
217 |
$screen = get_current_screen();
|
232 |
}
|
233 |
|
234 |
/**
|
235 |
+
* Add classes to <body> of WordPress admin.
|
236 |
*
|
237 |
* @param string $classes Space-separated list of CSS classes.
|
238 |
* @return string
|
242 |
}
|
243 |
|
244 |
/**
|
245 |
+
* Display Setting on a page.
|
246 |
*
|
247 |
* @param CMB2_Options $machine CUrrent CMB2 box object.
|
248 |
*/
|
286 |
}
|
287 |
|
288 |
/**
|
289 |
+
* Check if we are on the correct page.
|
290 |
*
|
291 |
* @return bool
|
292 |
*/
|
295 |
}
|
296 |
|
297 |
/**
|
298 |
+
* Get setting tabs.
|
299 |
*
|
300 |
* @return array
|
301 |
*/
|
313 |
}
|
314 |
|
315 |
/**
|
316 |
+
* Locate tab options file.
|
317 |
*
|
318 |
* @param string $id Tab id.
|
319 |
* @param array $tab Tab options.
|
@@ -107,7 +107,7 @@ class Post_Columns implements Runner {
|
|
107 |
}
|
108 |
|
109 |
/**
|
110 |
-
* Register post column hooks
|
111 |
*/
|
112 |
private function register_post_columns() {
|
113 |
foreach ( Helper::get_allowed_post_types() as $post_type ) {
|
@@ -133,7 +133,7 @@ class Post_Columns implements Runner {
|
|
133 |
}
|
134 |
|
135 |
/**
|
136 |
-
* Register media column hooks
|
137 |
*/
|
138 |
private function register_media_columns() {
|
139 |
if ( ! Helper::get_settings( 'titles.pt_attachment_bulk_editing' ) ) {
|
@@ -145,7 +145,7 @@ class Post_Columns implements Runner {
|
|
145 |
}
|
146 |
|
147 |
/**
|
148 |
-
* Enqueue
|
149 |
*/
|
150 |
public function enqueue() {
|
151 |
$screen = get_current_screen();
|
@@ -192,7 +192,7 @@ class Post_Columns implements Runner {
|
|
192 |
}
|
193 |
|
194 |
/**
|
195 |
-
* Make seo_score column sortable
|
196 |
*
|
197 |
* @param array $columns An array of column names.
|
198 |
* @return array
|
107 |
}
|
108 |
|
109 |
/**
|
110 |
+
* Register post column hooks.
|
111 |
*/
|
112 |
private function register_post_columns() {
|
113 |
foreach ( Helper::get_allowed_post_types() as $post_type ) {
|
133 |
}
|
134 |
|
135 |
/**
|
136 |
+
* Register media column hooks.
|
137 |
*/
|
138 |
private function register_media_columns() {
|
139 |
if ( ! Helper::get_settings( 'titles.pt_attachment_bulk_editing' ) ) {
|
145 |
}
|
146 |
|
147 |
/**
|
148 |
+
* Enqueue styles and scripts.
|
149 |
*/
|
150 |
public function enqueue() {
|
151 |
$screen = get_current_screen();
|
192 |
}
|
193 |
|
194 |
/**
|
195 |
+
* Make seo_score column sortable.
|
196 |
*
|
197 |
* @param array $columns An array of column names.
|
198 |
* @return array
|
@@ -49,7 +49,7 @@ class Post_Filters implements Runner {
|
|
49 |
}
|
50 |
|
51 |
/**
|
52 |
-
* Filter
|
53 |
*
|
54 |
* @param \WP_Query $query The wp_query instance.
|
55 |
*/
|
@@ -70,7 +70,7 @@ class Post_Filters implements Runner {
|
|
70 |
|
71 |
$meta_query = [];
|
72 |
|
73 |
-
// Check for
|
74 |
if ( ! empty( $_GET['pillar_content'] ) ) {
|
75 |
$meta_query[] = [
|
76 |
'key' => 'rank_math_pillar_content',
|
@@ -83,7 +83,7 @@ class Post_Filters implements Runner {
|
|
83 |
}
|
84 |
|
85 |
/**
|
86 |
-
* Filter post in admin by
|
87 |
*
|
88 |
* @param \WP_Query $query The wp_query instance.
|
89 |
*/
|
@@ -168,14 +168,14 @@ class Post_Filters implements Runner {
|
|
168 |
?>
|
169 |
<select name="seo-filter">
|
170 |
<?php foreach ( $options as $val => $option ) : ?>
|
171 |
-
<option value="<?php echo $val; ?>" <?php selected( $selected, $val, true ); ?>><?php echo $option; ?></option>
|
172 |
<?php endforeach; ?>
|
173 |
</select>
|
174 |
<?php
|
175 |
}
|
176 |
|
177 |
/**
|
178 |
-
* Add view to filter list for
|
179 |
*
|
180 |
* @param array $views An array of available list table views.
|
181 |
*/
|
@@ -268,7 +268,7 @@ class Post_Filters implements Runner {
|
|
268 |
}
|
269 |
|
270 |
/**
|
271 |
-
* Can apply
|
272 |
*
|
273 |
* @return bool
|
274 |
*/
|
@@ -282,7 +282,7 @@ class Post_Filters implements Runner {
|
|
282 |
}
|
283 |
|
284 |
/**
|
285 |
-
* Check if
|
286 |
*
|
287 |
* @return bool|array
|
288 |
*/
|
@@ -313,6 +313,7 @@ class Post_Filters implements Runner {
|
|
313 |
],
|
314 |
]);
|
315 |
|
|
|
316 |
$mq_sql = $meta_query->get_sql( 'post', $wpdb->posts, 'ID' );
|
317 |
return $wpdb->get_col( "SELECT {$wpdb->posts}.ID FROM $wpdb->posts {$mq_sql['join']} WHERE 1=1 {$mq_sql['where']} AND {$wpdb->posts}.post_type = '$screen->post_type' AND ({$wpdb->posts}.post_status = 'publish') AND {$wpdb->posts}.post_title NOT REGEXP REPLACE({$wpdb->postmeta}.meta_value, ',', '|')" ); // phpcs:ignore
|
318 |
}
|
49 |
}
|
50 |
|
51 |
/**
|
52 |
+
* Filter posts in admin by Rank Math's Filter value.
|
53 |
*
|
54 |
* @param \WP_Query $query The wp_query instance.
|
55 |
*/
|
70 |
|
71 |
$meta_query = [];
|
72 |
|
73 |
+
// Check for Pillar Content filter.
|
74 |
if ( ! empty( $_GET['pillar_content'] ) ) {
|
75 |
$meta_query[] = [
|
76 |
'key' => 'rank_math_pillar_content',
|
83 |
}
|
84 |
|
85 |
/**
|
86 |
+
* Filter post in admin by Pillar Content.
|
87 |
*
|
88 |
* @param \WP_Query $query The wp_query instance.
|
89 |
*/
|
168 |
?>
|
169 |
<select name="seo-filter">
|
170 |
<?php foreach ( $options as $val => $option ) : ?>
|
171 |
+
<option value="<?php echo esc_attr( $val ); ?>" <?php selected( $selected, $val, true ); ?>><?php echo esc_html( $option ); ?></option>
|
172 |
<?php endforeach; ?>
|
173 |
</select>
|
174 |
<?php
|
175 |
}
|
176 |
|
177 |
/**
|
178 |
+
* Add view to filter list for Pillar Content.
|
179 |
*
|
180 |
* @param array $views An array of available list table views.
|
181 |
*/
|
268 |
}
|
269 |
|
270 |
/**
|
271 |
+
* Can apply Focus Keyword filter.
|
272 |
*
|
273 |
* @return bool
|
274 |
*/
|
282 |
}
|
283 |
|
284 |
/**
|
285 |
+
* Check if Focus Keyword is in title.
|
286 |
*
|
287 |
* @return bool|array
|
288 |
*/
|
313 |
],
|
314 |
]);
|
315 |
|
316 |
+
$screen = get_current_screen();
|
317 |
$mq_sql = $meta_query->get_sql( 'post', $wpdb->posts, 'ID' );
|
318 |
return $wpdb->get_col( "SELECT {$wpdb->posts}.ID FROM $wpdb->posts {$mq_sql['join']} WHERE 1=1 {$mq_sql['where']} AND {$wpdb->posts}.post_type = '$screen->post_type' AND ({$wpdb->posts}.post_status = 'publish') AND {$wpdb->posts}.post_title NOT REGEXP REPLACE({$wpdb->postmeta}.meta_value, ',', '|')" ); // phpcs:ignore
|
319 |
}
|
@@ -164,7 +164,7 @@ class Registration {
|
|
164 |
*/
|
165 |
public function render_page() {
|
166 |
|
167 |
-
//
|
168 |
if ( Param::get( 'page' ) !== $this->slug ) {
|
169 |
return;
|
170 |
}
|
@@ -261,7 +261,7 @@ class Registration {
|
|
261 |
}
|
262 |
|
263 |
/**
|
264 |
-
*
|
265 |
*/
|
266 |
public function skip_wizard() {
|
267 |
check_admin_referer( 'rank-math-wizard', 'security' );
|
@@ -328,7 +328,7 @@ class Registration {
|
|
328 |
}
|
329 |
|
330 |
/**
|
331 |
-
* Print
|
332 |
*/
|
333 |
private function print_script() {
|
334 |
?>
|
164 |
*/
|
165 |
public function render_page() {
|
166 |
|
167 |
+
// Early bail if we're not on the right page.
|
168 |
if ( Param::get( 'page' ) !== $this->slug ) {
|
169 |
return;
|
170 |
}
|
261 |
}
|
262 |
|
263 |
/**
|
264 |
+
* Skip wizard handler.
|
265 |
*/
|
266 |
public function skip_wizard() {
|
267 |
check_admin_referer( 'rank-math-wizard', 'security' );
|
328 |
}
|
329 |
|
330 |
/**
|
331 |
+
* Print Javascript.
|
332 |
*/
|
333 |
private function print_script() {
|
334 |
?>
|
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
* The
|
4 |
*
|
5 |
* @since 0.9.0
|
6 |
* @package RankMath
|
@@ -414,7 +414,7 @@ class Serp_Checklist {
|
|
414 |
}
|
415 |
|
416 |
/**
|
417 |
-
* Add locale
|
418 |
*
|
419 |
* @param string $id List id.
|
420 |
* @param array $item List info.
|
1 |
<?php
|
2 |
/**
|
3 |
+
* The SERP checklist functionality.
|
4 |
*
|
5 |
* @since 0.9.0
|
6 |
* @package RankMath
|
414 |
}
|
415 |
|
416 |
/**
|
417 |
+
* Add locale.
|
418 |
*
|
419 |
* @param string $id List id.
|
420 |
* @param array $item List info.
|
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
* The
|
4 |
*
|
5 |
* @since 0.9.0
|
6 |
* @package RankMath
|
@@ -293,7 +293,7 @@ class Serp_Preview {
|
|
293 |
}
|
294 |
|
295 |
/**
|
296 |
-
* Get desktop preview
|
297 |
*
|
298 |
* @param array $data Snippet data array.
|
299 |
* @param int $rating Ratings.
|
@@ -343,7 +343,7 @@ class Serp_Preview {
|
|
343 |
}
|
344 |
|
345 |
/**
|
346 |
-
* Get mobile preview
|
347 |
*
|
348 |
* @param array $data Snippet data array.
|
349 |
* @param int $rating Ratings.
|
1 |
<?php
|
2 |
/**
|
3 |
+
* The SERP preview functionality, in the metabox.
|
4 |
*
|
5 |
* @since 0.9.0
|
6 |
* @package RankMath
|
293 |
}
|
294 |
|
295 |
/**
|
296 |
+
* Get desktop preview.
|
297 |
*
|
298 |
* @param array $data Snippet data array.
|
299 |
* @param int $rating Ratings.
|
343 |
}
|
344 |
|
345 |
/**
|
346 |
+
* Get mobile preview.
|
347 |
*
|
348 |
* @param array $data Snippet data array.
|
349 |
* @param int $rating Ratings.
|
@@ -55,7 +55,7 @@ class Setup_Wizard {
|
|
55 |
protected $slug = 'rank-math-wizard';
|
56 |
|
57 |
/**
|
58 |
-
* CMB2 object
|
59 |
*
|
60 |
* @var \CMB2
|
61 |
*/
|
@@ -77,7 +77,7 @@ class Setup_Wizard {
|
|
77 |
$this->action( 'admin_menu', 'add_admin_menu' );
|
78 |
$this->action( 'admin_post_rank_math_save_wizard', 'save_wizard' );
|
79 |
|
80 |
-
// If
|
81 |
if ( ! $this->is_current_page() ) {
|
82 |
return;
|
83 |
}
|
55 |
protected $slug = 'rank-math-wizard';
|
56 |
|
57 |
/**
|
58 |
+
* CMB2 object.
|
59 |
*
|
60 |
* @var \CMB2
|
61 |
*/
|
77 |
$this->action( 'admin_menu', 'add_admin_menu' );
|
78 |
$this->action( 'admin_post_rank_math_save_wizard', 'save_wizard' );
|
79 |
|
80 |
+
// If the page is not this page stop here.
|
81 |
if ( ! $this->is_current_page() ) {
|
82 |
return;
|
83 |
}
|
@@ -244,6 +244,47 @@ class CMB2 {
|
|
244 |
return htmlentities( $value );
|
245 |
}
|
246 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
247 |
/**
|
248 |
* Handles sanitization for webmaster tag and remove <meta> tag.
|
249 |
*
|
244 |
return htmlentities( $value );
|
245 |
}
|
246 |
|
247 |
+
/**
|
248 |
+
* Handles sanitization for text fields.
|
249 |
+
*
|
250 |
+
* @param string $value The unsanitized value from the form.
|
251 |
+
*
|
252 |
+
* @return string Sanitized value to be stored.
|
253 |
+
*/
|
254 |
+
public static function sanitize_textfield( $value ) {
|
255 |
+
if ( is_object( $value ) || is_array( $value ) ) {
|
256 |
+
return '';
|
257 |
+
}
|
258 |
+
|
259 |
+
$value = (string) $value;
|
260 |
+
$filtered = wp_check_invalid_utf8( $value );
|
261 |
+
|
262 |
+
if ( strpos( $filtered, '<' ) !== false ) {
|
263 |
+
$filtered = wp_pre_kses_less_than( $filtered );
|
264 |
+
// This will strip extra whitespace for us.
|
265 |
+
$filtered = wp_strip_all_tags( $filtered, false );
|
266 |
+
|
267 |
+
// Use html entities in a special case to make sure no later
|
268 |
+
// newline stripping stage could lead to a functional tag!
|
269 |
+
$filtered = str_replace( "<\n", "<\n", $filtered );
|
270 |
+
}
|
271 |
+
$filtered = preg_replace( '/[\r\n\t ]+/', ' ', $filtered );
|
272 |
+
$filtered = trim( $filtered );
|
273 |
+
|
274 |
+
$found = false;
|
275 |
+
while ( preg_match( '/%[0-9]{2}/i', $filtered, $match ) ) {
|
276 |
+
$filtered = str_replace( $match[0], '', $filtered );
|
277 |
+
$found = true;
|
278 |
+
}
|
279 |
+
|
280 |
+
if ( $found ) {
|
281 |
+
// Strip out the whitespace that may now exist after removing the octets.
|
282 |
+
$filtered = trim( preg_replace( '/ +/', ' ', $filtered ) );
|
283 |
+
}
|
284 |
+
|
285 |
+
return apply_filters( 'sanitize_text_field', $filtered, $value );
|
286 |
+
}
|
287 |
+
|
288 |
/**
|
289 |
* Handles sanitization for webmaster tag and remove <meta> tag.
|
290 |
*
|
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
*
|
4 |
*
|
5 |
* Defines the functionality loaded both on admin and frontend.
|
6 |
*
|
@@ -31,7 +31,7 @@ class Common {
|
|
31 |
use Hooker, Ajax, Meta;
|
32 |
|
33 |
/**
|
34 |
-
*
|
35 |
*/
|
36 |
public function __construct() {
|
37 |
$this->action( 'admin_bar_menu', 'admin_bar_menu', 100 );
|
@@ -46,35 +46,35 @@ class Common {
|
|
46 |
|
47 |
// Strip stopwords from slugs.
|
48 |
if ( Helper::get_settings( 'general.url_strip_stopwords' ) ) {
|
49 |
-
$this->filter( 'get_sample_permalink', '
|
50 |
}
|
51 |
|
|
|
52 |
$this->ajax( 'mark_page_as', 'mark_page_as' );
|
53 |
|
54 |
add_action( 'wp_ajax_nopriv_rank_math_overlay_thumb', [ $this, 'generate_overlay_thumbnail' ] );
|
55 |
}
|
56 |
|
57 |
/**
|
58 |
-
*
|
59 |
*
|
60 |
-
* @param array $permalink The permalink generated
|
61 |
-
* @param int $post_id The ID
|
62 |
-
* @param string $title The title
|
63 |
*
|
64 |
* @return array
|
65 |
*/
|
66 |
-
public function
|
67 |
|
68 |
-
// Early Bail!
|
69 |
if ( empty( $title ) ) {
|
70 |
return $permalink;
|
71 |
}
|
72 |
|
73 |
// The second element is the slug.
|
74 |
-
// Turn it to an array and strip
|
75 |
$new_slug_parts = array_diff( explode( '-', $permalink[1] ), $this->get_stopwords() );
|
76 |
|
77 |
-
//
|
78 |
if ( count( $new_slug_parts ) > 2 ) {
|
79 |
$permalink[1] = join( '-', $new_slug_parts );
|
80 |
}
|
@@ -145,7 +145,7 @@ class Common {
|
|
145 |
}
|
146 |
|
147 |
/**
|
148 |
-
* Get chain of hierarchical
|
149 |
*
|
150 |
* @param WP_Term $term The term in question.
|
151 |
*
|
@@ -201,13 +201,17 @@ class Common {
|
|
201 |
}
|
202 |
|
203 |
/**
|
204 |
-
*
|
205 |
*
|
206 |
-
* @param string $link The link
|
207 |
*
|
208 |
* @return string
|
209 |
*/
|
210 |
public function nofollow_link( $link ) {
|
|
|
|
|
|
|
|
|
211 |
return str_replace( '<a ', '<a rel="nofollow" ', $link );
|
212 |
}
|
213 |
|
@@ -383,7 +387,7 @@ class Common {
|
|
383 |
}
|
384 |
|
385 |
/**
|
386 |
-
* Third party SEO Tools
|
387 |
*
|
388 |
* @param array $items Array to add menu into.
|
389 |
*/
|
@@ -478,7 +482,7 @@ class Common {
|
|
478 |
}
|
479 |
|
480 |
/**
|
481 |
-
* AJAX function to mark page
|
482 |
*/
|
483 |
public function mark_page_as() {
|
484 |
check_ajax_referer( 'rank-math-ajax-nonce', 'security' );
|
@@ -514,7 +518,7 @@ class Common {
|
|
514 |
}
|
515 |
|
516 |
/**
|
517 |
-
* AJAX function to generate overlay image.
|
518 |
*/
|
519 |
public function generate_overlay_thumbnail() {
|
520 |
$thumbnail_id = Param::request( 'id', 0, FILTER_VALIDATE_INT );
|
@@ -565,7 +569,7 @@ class Common {
|
|
565 |
/**
|
566 |
* Get Rank Math icon.
|
567 |
*
|
568 |
-
* @param integer $width Width of icon.
|
569 |
*
|
570 |
* @return string
|
571 |
*/
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Global functionality of the plugin.
|
4 |
*
|
5 |
* Defines the functionality loaded both on admin and frontend.
|
6 |
*
|
31 |
use Hooker, Ajax, Meta;
|
32 |
|
33 |
/**
|
34 |
+
* Constructor method.
|
35 |
*/
|
36 |
public function __construct() {
|
37 |
$this->action( 'admin_bar_menu', 'admin_bar_menu', 100 );
|
46 |
|
47 |
// Strip stopwords from slugs.
|
48 |
if ( Helper::get_settings( 'general.url_strip_stopwords' ) ) {
|
49 |
+
$this->filter( 'get_sample_permalink', 'stopwords_default_permalink', 10, 3 );
|
50 |
}
|
51 |
|
52 |
+
// "Mark page as..." functionality in the top admin bar.
|
53 |
$this->ajax( 'mark_page_as', 'mark_page_as' );
|
54 |
|
55 |
add_action( 'wp_ajax_nopriv_rank_math_overlay_thumb', [ $this, 'generate_overlay_thumbnail' ] );
|
56 |
}
|
57 |
|
58 |
/**
|
59 |
+
* Remove stopwords from the default permalink generated automatically.
|
60 |
*
|
61 |
+
* @param array $permalink The permalink generated by WordPress.
|
62 |
+
* @param int $post_id The post ID.
|
63 |
+
* @param string $title The title of the post.
|
64 |
*
|
65 |
* @return array
|
66 |
*/
|
67 |
+
public function stopwords_default_permalink( $permalink, $post_id, $title ) {
|
68 |
|
|
|
69 |
if ( empty( $title ) ) {
|
70 |
return $permalink;
|
71 |
}
|
72 |
|
73 |
// The second element is the slug.
|
74 |
+
// Turn it to an array and strip stopwords by comparing against our array of stopwords.
|
75 |
$new_slug_parts = array_diff( explode( '-', $permalink[1] ), $this->get_stopwords() );
|
76 |
|
77 |
+
// Only change it if the resulting URL is at least 3 words long.
|
78 |
if ( count( $new_slug_parts ) > 2 ) {
|
79 |
$permalink[1] = join( '-', $new_slug_parts );
|
80 |
}
|
145 |
}
|
146 |
|
147 |
/**
|
148 |
+
* Get chain of hierarchical links.
|
149 |
*
|
150 |
* @param WP_Term $term The term in question.
|
151 |
*
|
201 |
}
|
202 |
|
203 |
/**
|
204 |
+
* Add rel="nofollow" to a link.
|
205 |
*
|
206 |
+
* @param string $link The link as a string.
|
207 |
*
|
208 |
* @return string
|
209 |
*/
|
210 |
public function nofollow_link( $link ) {
|
211 |
+
// Check if link is nofollow already.
|
212 |
+
if ( strpos( $link, ' rel="nofollow"' ) || strpos( $link, " rel='nofollow'" ) ) {
|
213 |
+
return $link;
|
214 |
+
}
|
215 |
return str_replace( '<a ', '<a rel="nofollow" ', $link );
|
216 |
}
|
217 |
|
387 |
}
|
388 |
|
389 |
/**
|
390 |
+
* Third party SEO Tools, like the Google Structured Data Testing Tool.
|
391 |
*
|
392 |
* @param array $items Array to add menu into.
|
393 |
*/
|
482 |
}
|
483 |
|
484 |
/**
|
485 |
+
* AJAX function to mark page as Pillar Content/Noindex/Nofollow.
|
486 |
*/
|
487 |
public function mark_page_as() {
|
488 |
check_ajax_referer( 'rank-math-ajax-nonce', 'security' );
|
518 |
}
|
519 |
|
520 |
/**
|
521 |
+
* AJAX function to generate overlay image. Used in social thumbnails.
|
522 |
*/
|
523 |
public function generate_overlay_thumbnail() {
|
524 |
$thumbnail_id = Param::request( 'id', 0, FILTER_VALIDATE_INT );
|
569 |
/**
|
570 |
* Get Rank Math icon.
|
571 |
*
|
572 |
+
* @param integer $width Width of the icon.
|
573 |
*
|
574 |
* @return string
|
575 |
*/
|
@@ -39,7 +39,7 @@ class Compatibility {
|
|
39 |
}
|
40 |
|
41 |
/**
|
42 |
-
* Subscribe to comments reloaded page
|
43 |
*
|
44 |
* @param int $page_id Change page id to real page.
|
45 |
* @return int
|
@@ -60,14 +60,14 @@ class Compatibility {
|
|
60 |
}
|
61 |
|
62 |
/**
|
63 |
-
* Remove robots for this plugin
|
64 |
*/
|
65 |
public function subscribe_to_comments_reloaded_remove_robots() {
|
66 |
remove_action( 'rank_math/frontend/robots', '__return_empty_array' );
|
67 |
}
|
68 |
|
69 |
/**
|
70 |
-
* Remove Pirate forms plugin scripts and styles from setting panels
|
71 |
*/
|
72 |
public function pirate_forms_dequeue_scripts() {
|
73 |
|
@@ -88,7 +88,7 @@ class Compatibility {
|
|
88 |
}
|
89 |
|
90 |
/**
|
91 |
-
* Disable
|
92 |
*
|
93 |
* @param array $array Array hold disable info.
|
94 |
*
|
39 |
}
|
40 |
|
41 |
/**
|
42 |
+
* Subscribe to comments reloaded page ID.
|
43 |
*
|
44 |
* @param int $page_id Change page id to real page.
|
45 |
* @return int
|
60 |
}
|
61 |
|
62 |
/**
|
63 |
+
* Remove robots for this plugin.
|
64 |
*/
|
65 |
public function subscribe_to_comments_reloaded_remove_robots() {
|
66 |
remove_action( 'rank_math/frontend/robots', '__return_empty_array' );
|
67 |
}
|
68 |
|
69 |
/**
|
70 |
+
* Remove Pirate forms plugin scripts and styles from setting panels.
|
71 |
*/
|
72 |
public function pirate_forms_dequeue_scripts() {
|
73 |
|
88 |
}
|
89 |
|
90 |
/**
|
91 |
+
* Disable Genesis SEO functionality.
|
92 |
*
|
93 |
* @param array $array Array hold disable info.
|
94 |
*
|
@@ -37,7 +37,7 @@ class Frontend_SEO_Score {
|
|
37 |
private $css_added = false;
|
38 |
|
39 |
/**
|
40 |
-
* Magic method to use in case the class would be
|
41 |
*
|
42 |
* @return string
|
43 |
*/
|
37 |
private $css_added = false;
|
38 |
|
39 |
/**
|
40 |
+
* Magic method to use in case the class would be sent to string.
|
41 |
*
|
42 |
* @return string
|
43 |
*/
|
@@ -29,30 +29,27 @@ class Helper {
|
|
29 |
use Api, Attachment, Conditional, Choices, Post_Type, Options, Taxonomy, WordPress;
|
30 |
|
31 |
/**
|
32 |
-
* Replace `%
|
33 |
*
|
34 |
-
* @param string $content The string
|
35 |
-
* @param array $args
|
36 |
-
* @param array $
|
37 |
* @return string
|
38 |
*/
|
39 |
-
public static function replace_vars( $content, $args = [], $
|
40 |
$replacer = new Replace_Vars();
|
41 |
|
42 |
-
return $replacer->replace( $content, $args, $
|
43 |
}
|
44 |
|
45 |
/**
|
46 |
-
* Register
|
47 |
-
* For use by other plugins/themes to register extra variables.
|
48 |
*
|
49 |
* @codeCoverageIgnore
|
50 |
*
|
51 |
-
* @param string $var
|
52 |
-
*
|
53 |
-
* @param
|
54 |
-
* and should *return* the replacement value. DON'T echo it.
|
55 |
-
* @param array $args Array with title, desc and example values.
|
56 |
*
|
57 |
* @return bool Whether the replacement function was succesfully registered.
|
58 |
*/
|
@@ -61,7 +58,7 @@ class Helper {
|
|
61 |
}
|
62 |
|
63 |
/**
|
64 |
-
* Get midnight time for date.
|
65 |
*
|
66 |
* @param int $time Timestamp of date.
|
67 |
* @return int
|
@@ -77,11 +74,11 @@ class Helper {
|
|
77 |
}
|
78 |
|
79 |
/**
|
80 |
-
*
|
81 |
*
|
82 |
-
* @param string $url The
|
83 |
-
* @param string $part The
|
84 |
-
* @return string The
|
85 |
*/
|
86 |
public static function get_url_part( $url, $part ) {
|
87 |
$url_parts = wp_parse_url( $url );
|
@@ -94,9 +91,9 @@ class Helper {
|
|
94 |
}
|
95 |
|
96 |
/**
|
97 |
-
* Get current page
|
98 |
*
|
99 |
-
* @param bool $ignore_qs Ignore
|
100 |
* @return string
|
101 |
*/
|
102 |
public static function get_current_page_url( $ignore_qs = false ) {
|
@@ -112,7 +109,7 @@ class Helper {
|
|
112 |
}
|
113 |
|
114 |
/**
|
115 |
-
* Get
|
116 |
*
|
117 |
* @return array
|
118 |
*/
|
@@ -131,7 +128,7 @@ class Helper {
|
|
131 |
}
|
132 |
|
133 |
/**
|
134 |
-
* Get auth url.
|
135 |
*
|
136 |
* @return string
|
137 |
*/
|
@@ -149,7 +146,7 @@ class Helper {
|
|
149 |
}
|
150 |
|
151 |
/**
|
152 |
-
* Get
|
153 |
*
|
154 |
* @param bool|array $data Data to save.
|
155 |
* @return bool|array
|
@@ -186,7 +183,7 @@ class Helper {
|
|
186 |
}
|
187 |
|
188 |
/**
|
189 |
-
* Get module by
|
190 |
*
|
191 |
* @param string $id ID to get module.
|
192 |
* @return object Module class object.
|
29 |
use Api, Attachment, Conditional, Choices, Post_Type, Options, Taxonomy, WordPress;
|
30 |
|
31 |
/**
|
32 |
+
* Replace `%variables%` with context-dependent value.
|
33 |
*
|
34 |
+
* @param string $content The string containing the %variables%.
|
35 |
+
* @param array $args Context object, can be post, taxonomy or term.
|
36 |
+
* @param array $exclude Excluded variables won't be replaced.
|
37 |
* @return string
|
38 |
*/
|
39 |
+
public static function replace_vars( $content, $args = [], $exclude = [] ) {
|
40 |
$replacer = new Replace_Vars();
|
41 |
|
42 |
+
return $replacer->replace( $content, $args, $exclude );
|
43 |
}
|
44 |
|
45 |
/**
|
46 |
+
* Register extra %variables%. For developers.
|
|
|
47 |
*
|
48 |
* @codeCoverageIgnore
|
49 |
*
|
50 |
+
* @param string $var Variable name, for example %custom%. '%' signs are optional.
|
51 |
+
* @param mixed $callback Replacement callback. Should return value, not output it.
|
52 |
+
* @param array $args Array with additional title, description and example values for the variable.
|
|
|
|
|
53 |
*
|
54 |
* @return bool Whether the replacement function was succesfully registered.
|
55 |
*/
|
58 |
}
|
59 |
|
60 |
/**
|
61 |
+
* Get midnight time for the date variables.
|
62 |
*
|
63 |
* @param int $time Timestamp of date.
|
64 |
* @return int
|
74 |
}
|
75 |
|
76 |
/**
|
77 |
+
* Extract URL part.
|
78 |
*
|
79 |
+
* @param string $url The URL to parse.
|
80 |
+
* @param string $part The URL part to retrieve.
|
81 |
+
* @return string The extracted URL part.
|
82 |
*/
|
83 |
public static function get_url_part( $url, $part ) {
|
84 |
$url_parts = wp_parse_url( $url );
|
91 |
}
|
92 |
|
93 |
/**
|
94 |
+
* Get current page URL.
|
95 |
*
|
96 |
+
* @param bool $ignore_qs Ignore query string.
|
97 |
* @return string
|
98 |
*/
|
99 |
public static function get_current_page_url( $ignore_qs = false ) {
|
109 |
}
|
110 |
|
111 |
/**
|
112 |
+
* Get RM Search Console API config.
|
113 |
*
|
114 |
* @return array
|
115 |
*/
|
128 |
}
|
129 |
|
130 |
/**
|
131 |
+
* Get Search Console auth url.
|
132 |
*
|
133 |
* @return string
|
134 |
*/
|
146 |
}
|
147 |
|
148 |
/**
|
149 |
+
* Get or update Search Console data.
|
150 |
*
|
151 |
* @param bool|array $data Data to save.
|
152 |
* @return bool|array
|
183 |
}
|
184 |
|
185 |
/**
|
186 |
+
* Get module by ID.
|
187 |
*
|
188 |
* @param string $id ID to get module.
|
189 |
* @return object Module class object.
|
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
* Plugin
|
4 |
*
|
5 |
* This class defines all code necessary to run during the plugin's activation.
|
6 |
*
|
@@ -27,7 +27,7 @@ class Installer {
|
|
27 |
use Hooker;
|
28 |
|
29 |
/**
|
30 |
-
*
|
31 |
*/
|
32 |
public function __construct() {
|
33 |
register_activation_hook( RANK_MATH_FILE, [ $this, 'activation' ] );
|
@@ -40,7 +40,7 @@ class Installer {
|
|
40 |
}
|
41 |
|
42 |
/**
|
43 |
-
*
|
44 |
*
|
45 |
* @param bool $network_wide Whether the plugin is being activated network-wide.
|
46 |
*/
|
@@ -54,7 +54,7 @@ class Installer {
|
|
54 |
}
|
55 |
|
56 |
/**
|
57 |
-
*
|
58 |
*
|
59 |
* @param bool $network_wide Whether the plugin is being activated network-wide.
|
60 |
*/
|
@@ -102,7 +102,7 @@ class Installer {
|
|
102 |
}
|
103 |
|
104 |
/**
|
105 |
-
* Run network-wide
|
106 |
*
|
107 |
* @param bool $activate True for plugin activation, false for de-activation.
|
108 |
*/
|
@@ -158,7 +158,7 @@ class Installer {
|
|
158 |
}
|
159 |
|
160 |
/**
|
161 |
-
* Runs on
|
162 |
*/
|
163 |
private function deactivate() {
|
164 |
$this->clear_rewrite_rules( false );
|
@@ -168,7 +168,7 @@ class Installer {
|
|
168 |
}
|
169 |
|
170 |
/**
|
171 |
-
* Set up the database tables
|
172 |
*/
|
173 |
private function create_tables() {
|
174 |
global $wpdb;
|
@@ -271,7 +271,7 @@ class Installer {
|
|
271 |
'profiles' => [],
|
272 |
]);
|
273 |
|
274 |
-
// Update "known CPTs" list,
|
275 |
add_option( 'rank_math_known_post_types', Helper::get_accessible_post_types() );
|
276 |
|
277 |
$modules = [
|
@@ -279,8 +279,6 @@ class Installer {
|
|
279 |
'search-console',
|
280 |
'seo-analysis',
|
281 |
'sitemap',
|
282 |
-
|
283 |
-
// Premium.
|
284 |
'rich-snippet',
|
285 |
'woocommerce',
|
286 |
];
|
@@ -347,6 +345,9 @@ class Installer {
|
|
347 |
'usage_tracking' => 'on',
|
348 |
'wc_remove_generator' => 'on',
|
349 |
'remove_shop_snippet_data' => 'on',
|
|
|
|
|
|
|
350 |
]));
|
351 |
}
|
352 |
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Plugin activation and deactivation functionality.
|
4 |
*
|
5 |
* This class defines all code necessary to run during the plugin's activation.
|
6 |
*
|
27 |
use Hooker;
|
28 |
|
29 |
/**
|
30 |
+
* Bind all events.
|
31 |
*/
|
32 |
public function __construct() {
|
33 |
register_activation_hook( RANK_MATH_FILE, [ $this, 'activation' ] );
|
40 |
}
|
41 |
|
42 |
/**
|
43 |
+
* Do things when activating Rank Math.
|
44 |
*
|
45 |
* @param bool $network_wide Whether the plugin is being activated network-wide.
|
46 |
*/
|
54 |
}
|
55 |
|
56 |
/**
|
57 |
+
* Do things when deactivating Rank Math.
|
58 |
*
|
59 |
* @param bool $network_wide Whether the plugin is being activated network-wide.
|
60 |
*/
|
102 |
}
|
103 |
|
104 |
/**
|
105 |
+
* Run network-wide activation/deactivation of the plugin.
|
106 |
*
|
107 |
* @param bool $activate True for plugin activation, false for de-activation.
|
108 |
*/
|
158 |
}
|
159 |
|
160 |
/**
|
161 |
+
* Runs on deactivation of the plugin.
|
162 |
*/
|
163 |
private function deactivate() {
|
164 |
$this->clear_rewrite_rules( false );
|
168 |
}
|
169 |
|
170 |
/**
|
171 |
+
* Set up the database tables.
|
172 |
*/
|
173 |
private function create_tables() {
|
174 |
global $wpdb;
|
271 |
'profiles' => [],
|
272 |
]);
|
273 |
|
274 |
+
// Update "known CPTs" list, so we can send notice about new ones later.
|
275 |
add_option( 'rank_math_known_post_types', Helper::get_accessible_post_types() );
|
276 |
|
277 |
$modules = [
|
279 |
'search-console',
|
280 |
'seo-analysis',
|
281 |
'sitemap',
|
|
|
|
|
282 |
'rich-snippet',
|
283 |
'woocommerce',
|
284 |
];
|
345 |
'usage_tracking' => 'on',
|
346 |
'wc_remove_generator' => 'on',
|
347 |
'remove_shop_snippet_data' => 'on',
|
348 |
+
'frontend_seo_score' => 'off',
|
349 |
+
'frontend_seo_score_post_types' => [ 'post' ],
|
350 |
+
'frontend_seo_score_position' => 'top',
|
351 |
]));
|
352 |
}
|
353 |
|
@@ -18,28 +18,28 @@ defined( 'ABSPATH' ) || exit;
|
|
18 |
abstract class Metadata {
|
19 |
|
20 |
/**
|
21 |
-
* Type of object metadata is for
|
22 |
*
|
23 |
* @var string
|
24 |
*/
|
25 |
protected $meta_type = 'post';
|
26 |
|
27 |
/**
|
28 |
-
*
|
29 |
*
|
30 |
* @var WP_Post|WP_Term|WP_User
|
31 |
*/
|
32 |
protected $object = null;
|
33 |
|
34 |
/**
|
35 |
-
*
|
36 |
*
|
37 |
* @var int
|
38 |
*/
|
39 |
protected $object_id = null;
|
40 |
|
41 |
/**
|
42 |
-
*
|
43 |
*
|
44 |
* @var array
|
45 |
*/
|
@@ -74,7 +74,7 @@ abstract class Metadata {
|
|
74 |
}
|
75 |
|
76 |
/**
|
77 |
-
* If object found
|
78 |
*
|
79 |
* @return bool
|
80 |
*/
|
@@ -83,7 +83,7 @@ abstract class Metadata {
|
|
83 |
}
|
84 |
|
85 |
/**
|
86 |
-
* Get object
|
87 |
*
|
88 |
* @return object
|
89 |
*/
|
@@ -92,9 +92,9 @@ abstract class Metadata {
|
|
92 |
}
|
93 |
|
94 |
/**
|
95 |
-
* Get metadata for the object
|
96 |
*
|
97 |
-
* @param string $key
|
98 |
* @return mixed
|
99 |
*/
|
100 |
public function get_metadata( $key ) {
|
@@ -104,7 +104,7 @@ abstract class Metadata {
|
|
104 |
}
|
105 |
|
106 |
$value = $this->$meta_key;
|
107 |
-
$replaced = $this->
|
108 |
if ( false !== $replaced ) {
|
109 |
$this->$meta_key = $replaced;
|
110 |
return $this->$meta_key;
|
@@ -119,17 +119,17 @@ abstract class Metadata {
|
|
119 |
}
|
120 |
|
121 |
/**
|
122 |
-
* Maybe
|
123 |
*
|
124 |
* @param string $key Key to check whether it contains variables.
|
125 |
* @param mixed $value Value used to replace variables in.
|
126 |
* @param object $object Object used for replacements.
|
127 |
* @return string|bool False if replacement not needed. Replaced variable string.
|
128 |
*/
|
129 |
-
public function
|
130 |
$need_replacements = array( 'title', 'description', 'facebook_title', 'twitter_title', 'facebook_description', 'twitter_description', 'snippet_name', 'snippet_desc' );
|
131 |
|
132 |
-
// Early
|
133 |
if ( ! in_array( $key, $need_replacements, true ) || ! is_string( $value ) || '' === $value ) {
|
134 |
return false;
|
135 |
}
|
18 |
abstract class Metadata {
|
19 |
|
20 |
/**
|
21 |
+
* Type of object the metadata is for.
|
22 |
*
|
23 |
* @var string
|
24 |
*/
|
25 |
protected $meta_type = 'post';
|
26 |
|
27 |
/**
|
28 |
+
* Holds the object.
|
29 |
*
|
30 |
* @var WP_Post|WP_Term|WP_User
|
31 |
*/
|
32 |
protected $object = null;
|
33 |
|
34 |
/**
|
35 |
+
* Holds the object ID.
|
36 |
*
|
37 |
* @var int
|
38 |
*/
|
39 |
protected $object_id = null;
|
40 |
|
41 |
/**
|
42 |
+
* Holds multiple objects.
|
43 |
*
|
44 |
* @var array
|
45 |
*/
|
74 |
}
|
75 |
|
76 |
/**
|
77 |
+
* If object found.
|
78 |
*
|
79 |
* @return bool
|
80 |
*/
|
83 |
}
|
84 |
|
85 |
/**
|
86 |
+
* Get attached object.
|
87 |
*
|
88 |
* @return object
|
89 |
*/
|
92 |
}
|
93 |
|
94 |
/**
|
95 |
+
* Get metadata for the object.
|
96 |
*
|
97 |
+
* @param string $key Value to get, without prefix.
|
98 |
* @return mixed
|
99 |
*/
|
100 |
public function get_metadata( $key ) {
|
104 |
}
|
105 |
|
106 |
$value = $this->$meta_key;
|
107 |
+
$replaced = $this->maybe_replace_vars( $key, $value, $this->object );
|
108 |
if ( false !== $replaced ) {
|
109 |
$this->$meta_key = $replaced;
|
110 |
return $this->$meta_key;
|
119 |
}
|
120 |
|
121 |
/**
|
122 |
+
* Maybe replace variables in meta data.
|
123 |
*
|
124 |
* @param string $key Key to check whether it contains variables.
|
125 |
* @param mixed $value Value used to replace variables in.
|
126 |
* @param object $object Object used for replacements.
|
127 |
* @return string|bool False if replacement not needed. Replaced variable string.
|
128 |
*/
|
129 |
+
public function maybe_replace_vars( $key, $value, $object ) {
|
130 |
$need_replacements = array( 'title', 'description', 'facebook_title', 'twitter_title', 'facebook_description', 'twitter_description', 'snippet_name', 'snippet_desc' );
|
131 |
|
132 |
+
// Early bail.
|
133 |
if ( ! in_array( $key, $need_replacements, true ) || ! is_string( $value ) || '' === $value ) {
|
134 |
return false;
|
135 |
}
|
@@ -23,21 +23,21 @@ class Module_Manager {
|
|
23 |
use Hooker;
|
24 |
|
25 |
/**
|
26 |
-
*
|
27 |
*
|
28 |
* @var array
|
29 |
*/
|
30 |
public $modules = [];
|
31 |
|
32 |
/**
|
33 |
-
*
|
34 |
*
|
35 |
* @var array
|
36 |
*/
|
37 |
private $controls = [];
|
38 |
|
39 |
/**
|
40 |
-
*
|
41 |
*
|
42 |
* @var array
|
43 |
*/
|
@@ -218,7 +218,7 @@ class Module_Manager {
|
|
218 |
}
|
219 |
|
220 |
/**
|
221 |
-
* Check if we can load the module
|
222 |
*
|
223 |
* @param string $module_id ID to get module.
|
224 |
* @param string $module Module arguments.
|
@@ -318,7 +318,7 @@ class Module_Manager {
|
|
318 |
}
|
319 |
|
320 |
/**
|
321 |
-
* Get module by
|
322 |
*
|
323 |
* @param string $id ID to get module.
|
324 |
* @return object Module class object.
|
23 |
use Hooker;
|
24 |
|
25 |
/**
|
26 |
+
* Holds modules.
|
27 |
*
|
28 |
* @var array
|
29 |
*/
|
30 |
public $modules = [];
|
31 |
|
32 |
/**
|
33 |
+
* Holds module objects.
|
34 |
*
|
35 |
* @var array
|
36 |
*/
|
37 |
private $controls = [];
|
38 |
|
39 |
/**
|
40 |
+
* Holds active module IDs.
|
41 |
*
|
42 |
* @var array
|
43 |
*/
|
218 |
}
|
219 |
|
220 |
/**
|
221 |
+
* Check if we can load the module.
|
222 |
*
|
223 |
* @param string $module_id ID to get module.
|
224 |
* @param string $module Module arguments.
|
318 |
}
|
319 |
|
320 |
/**
|
321 |
+
* Get module by ID.
|
322 |
*
|
323 |
* @param string $id ID to get module.
|
324 |
* @return object Module class object.
|
@@ -47,14 +47,14 @@ class Module {
|
|
47 |
public function register_admin_page() {}
|
48 |
|
49 |
/**
|
50 |
-
* Admin
|
51 |
*/
|
52 |
public function admin_init() {
|
53 |
$this->table = new $this->table;
|
54 |
}
|
55 |
|
56 |
/**
|
57 |
-
* Add help tab
|
58 |
*
|
59 |
* @param array $tabs Array of tabs.
|
60 |
* @return array
|
@@ -66,7 +66,7 @@ class Module {
|
|
66 |
}
|
67 |
|
68 |
/**
|
69 |
-
* Register screen options
|
70 |
*/
|
71 |
private function register_screen_options() {
|
72 |
if ( ! isset( $this->screen_options ) ) {
|
@@ -89,9 +89,9 @@ class Module {
|
|
89 |
}
|
90 |
|
91 |
/**
|
92 |
-
* Set screen options
|
93 |
*
|
94 |
-
* @param bool|int $status
|
95 |
* @param string $option The option name.
|
96 |
* @param int $value The number of rows to use.
|
97 |
*/
|
47 |
public function register_admin_page() {}
|
48 |
|
49 |
/**
|
50 |
+
* Admin initialize.
|
51 |
*/
|
52 |
public function admin_init() {
|
53 |
$this->table = new $this->table;
|
54 |
}
|
55 |
|
56 |
/**
|
57 |
+
* Add help tab on help page.
|
58 |
*
|
59 |
* @param array $tabs Array of tabs.
|
60 |
* @return array
|
66 |
}
|
67 |
|
68 |
/**
|
69 |
+
* Register screen options.
|
70 |
*/
|
71 |
private function register_screen_options() {
|
72 |
if ( ! isset( $this->screen_options ) ) {
|
89 |
}
|
90 |
|
91 |
/**
|
92 |
+
* Set screen options.
|
93 |
*
|
94 |
+
* @param bool|int $status Screen option value. Default false to skip.
|
95 |
* @param string $option The option name.
|
96 |
* @param int $value The number of rows to use.
|
97 |
*/
|
@@ -21,7 +21,7 @@ defined( 'ABSPATH' ) || exit;
|
|
21 |
class Post extends Metadata {
|
22 |
|
23 |
/**
|
24 |
-
* Type of object metadata is for
|
25 |
*
|
26 |
* @var string
|
27 |
*/
|
@@ -51,7 +51,7 @@ class Post extends Metadata {
|
|
51 |
}
|
52 |
|
53 |
/**
|
54 |
-
* Get post
|
55 |
*
|
56 |
* @param integer $post Post ID.
|
57 |
* @return integer
|
@@ -74,10 +74,10 @@ class Post extends Metadata {
|
|
74 |
}
|
75 |
|
76 |
/**
|
77 |
-
* Get post meta value.
|
78 |
*
|
79 |
-
* @param string $key
|
80 |
-
* @param integer $post_id
|
81 |
* @return mixed
|
82 |
*/
|
83 |
public static function get_meta( $key, $post_id = 0 ) {
|
@@ -91,13 +91,13 @@ class Post extends Metadata {
|
|
91 |
}
|
92 |
|
93 |
/**
|
94 |
-
*
|
95 |
*
|
96 |
-
* @return int The
|
97 |
*/
|
98 |
public static function get_simple_page_id() {
|
99 |
/**
|
100 |
-
* Filter: Allow changing the default page
|
101 |
*
|
102 |
* @param unsigned int $page_id The default page id.
|
103 |
*/
|
@@ -119,17 +119,17 @@ class Post extends Metadata {
|
|
119 |
}
|
120 |
|
121 |
/**
|
122 |
-
* Filter: Allow changing the default page
|
123 |
*
|
124 |
-
* @param unsigned int $page_id The default page
|
125 |
*/
|
126 |
return apply_filters( 'rank_math/simple_page_id', 0 );
|
127 |
}
|
128 |
|
129 |
/**
|
130 |
-
* Returns the
|
131 |
*
|
132 |
-
* @return int The ID of the
|
133 |
*/
|
134 |
public static function get_shop_page_id() {
|
135 |
static $shop_page_id;
|
@@ -141,18 +141,18 @@ class Post extends Metadata {
|
|
141 |
}
|
142 |
|
143 |
/**
|
144 |
-
* Checks if the
|
145 |
*
|
146 |
-
* @return bool Whether the
|
147 |
*/
|
148 |
public static function is_simple_page() {
|
149 |
return self::get_simple_page_id() > 0;
|
150 |
}
|
151 |
|
152 |
/**
|
153 |
-
* Checks if the current page is the
|
154 |
*
|
155 |
-
* @return bool Whether the current page is the
|
156 |
*/
|
157 |
public static function is_shop_page() {
|
158 |
if ( function_exists( 'is_shop' ) && function_exists( 'wc_get_page_id' ) ) {
|
@@ -163,9 +163,9 @@ class Post extends Metadata {
|
|
163 |
}
|
164 |
|
165 |
/**
|
166 |
-
* Checks if the current page is one of the
|
167 |
*
|
168 |
-
* @return bool Whether the current page is
|
169 |
*/
|
170 |
public static function is_woocommerce_page() {
|
171 |
if ( Conditional::is_woocommerce_active() ) {
|
@@ -176,7 +176,7 @@ class Post extends Metadata {
|
|
176 |
}
|
177 |
|
178 |
/**
|
179 |
-
*
|
180 |
*
|
181 |
* @return bool
|
182 |
*/
|
@@ -185,7 +185,7 @@ class Post extends Metadata {
|
|
185 |
}
|
186 |
|
187 |
/**
|
188 |
-
*
|
189 |
*
|
190 |
* @return bool
|
191 |
*/
|
@@ -194,7 +194,7 @@ class Post extends Metadata {
|
|
194 |
}
|
195 |
|
196 |
/**
|
197 |
-
*
|
198 |
*
|
199 |
* @return bool
|
200 |
*/
|
21 |
class Post extends Metadata {
|
22 |
|
23 |
/**
|
24 |
+
* Type of object metadata is for (e.g., comment, post, or user).
|
25 |
*
|
26 |
* @var string
|
27 |
*/
|
51 |
}
|
52 |
|
53 |
/**
|
54 |
+
* Get the post ID.
|
55 |
*
|
56 |
* @param integer $post Post ID.
|
57 |
* @return integer
|
74 |
}
|
75 |
|
76 |
/**
|
77 |
+
* Get a post meta value.
|
78 |
*
|
79 |
+
* @param string $key Value to get, without prefix.
|
80 |
+
* @param integer $post_id ID of the post.
|
81 |
* @return mixed
|
82 |
*/
|
83 |
public static function get_meta( $key, $post_id = 0 ) {
|
91 |
}
|
92 |
|
93 |
/**
|
94 |
+
* Get the ID of the current page.
|
95 |
*
|
96 |
+
* @return int The ID of the page.
|
97 |
*/
|
98 |
public static function get_simple_page_id() {
|
99 |
/**
|
100 |
+
* Filter: Allow changing the default page ID. Short-circuit if 3rd party set page ID.
|
101 |
*
|
102 |
* @param unsigned int $page_id The default page id.
|
103 |
*/
|
119 |
}
|
120 |
|
121 |
/**
|
122 |
+
* Filter: Allow changing the default page ID.
|
123 |
*
|
124 |
+
* @param unsigned int $page_id The default page ID.
|
125 |
*/
|
126 |
return apply_filters( 'rank_math/simple_page_id', 0 );
|
127 |
}
|
128 |
|
129 |
/**
|
130 |
+
* Returns the ID of the selected WooCommerce shop page.
|
131 |
*
|
132 |
+
* @return int The ID of the Shop page.
|
133 |
*/
|
134 |
public static function get_shop_page_id() {
|
135 |
static $shop_page_id;
|
141 |
}
|
142 |
|
143 |
/**
|
144 |
+
* Checks if the current page is a simple page.
|
145 |
*
|
146 |
+
* @return bool Whether the current page is a simple page.
|
147 |
*/
|
148 |
public static function is_simple_page() {
|
149 |
return self::get_simple_page_id() > 0;
|
150 |
}
|
151 |
|
152 |
/**
|
153 |
+
* Checks if the current page is the WooCommerce "Shop" page.
|
154 |
*
|
155 |
+
* @return bool Whether the current page is the shop page.
|
156 |
*/
|
157 |
public static function is_shop_page() {
|
158 |
if ( function_exists( 'is_shop' ) && function_exists( 'wc_get_page_id' ) ) {
|
163 |
}
|
164 |
|
165 |
/**
|
166 |
+
* Checks if the current page is one of the WooCommerce pages: Cart/Account/Checkout.
|
167 |
*
|
168 |
+
* @return bool Whether the current page is a WooCommerce page.
|
169 |
*/
|
170 |
public static function is_woocommerce_page() {
|
171 |
if ( Conditional::is_woocommerce_active() ) {
|
176 |
}
|
177 |
|
178 |
/**
|
179 |
+
* Check whether this is the homepage and if it shows the posts.
|
180 |
*
|
181 |
* @return bool
|
182 |
*/
|
185 |
}
|
186 |
|
187 |
/**
|
188 |
+
* Check whether this is the static frontpage.
|
189 |
*
|
190 |
* @return bool
|
191 |
*/
|
194 |
}
|
195 |
|
196 |
/**
|
197 |
+
* Check if this is the posts page and that it's not the frontpage.
|
198 |
*
|
199 |
* @return bool
|
200 |
*/
|
@@ -1,9 +1,8 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
* Variable
|
4 |
*
|
5 |
-
*
|
6 |
-
* requested page/post/cpt/etc in text strings.
|
7 |
*
|
8 |
* @since 0.9.0
|
9 |
* @package RankMath
|
@@ -50,7 +49,7 @@ class Replace_Vars {
|
|
50 |
protected static $counters = [];
|
51 |
|
52 |
/**
|
53 |
-
* Default post
|
54 |
*
|
55 |
* @var array
|
56 |
*/
|
@@ -70,17 +69,17 @@ class Replace_Vars {
|
|
70 |
);
|
71 |
|
72 |
/**
|
73 |
-
*
|
74 |
*
|
75 |
-
* @param string $string
|
76 |
-
* @param array $args
|
77 |
-
* @param array $
|
78 |
* @return string
|
79 |
*/
|
80 |
-
public function replace( $string, $args = [], $
|
81 |
$string = strip_tags( $string );
|
82 |
|
83 |
-
//
|
84 |
if ( ! Str::contains( '%', $string ) ) {
|
85 |
return $string;
|
86 |
}
|
@@ -91,43 +90,41 @@ class Replace_Vars {
|
|
91 |
|
92 |
$this->args = (object) wp_parse_args( $args, $this->defaults );
|
93 |
|
94 |
-
// Clean $
|
95 |
-
if ( is_array( $
|
96 |
-
$
|
97 |
}
|
98 |
|
99 |
$replacements = [];
|
100 |
if ( preg_match_all( '/%(([a-z0-9_-]+)\(([^)]*)\)|[^\s]+)%/iu', $string, $matches ) ) {
|
101 |
-
$replacements = $this->set_up_replacements( $matches, $
|
102 |
}
|
103 |
|
104 |
/**
|
105 |
-
* Allow
|
106 |
*
|
107 |
-
* @param array $replacements
|
108 |
*/
|
109 |
$replacements = $this->do_filter( 'replacements', $replacements );
|
110 |
|
111 |
-
// Do the
|
112 |
if ( is_array( $replacements ) && [] !== $replacements ) {
|
113 |
$string = str_replace( array_keys( $replacements ), array_values( $replacements ), $string );
|
114 |
}
|
115 |
|
116 |
/**
|
117 |
-
*
|
118 |
*
|
119 |
-
* @example <code>add_filter( 'rank_math/replacements_final', '__return_false' );</code>
|
120 |
* @param bool $final
|
121 |
*/
|
122 |
-
if ( true === $this->do_filter( '
|
123 |
// Remove non-replaced variables.
|
124 |
-
//
|
125 |
-
$remove = array_diff( $matches[1], $
|
126 |
$remove = array_map( array( __CLASS__, 'add_var_delimiter' ), $remove );
|
127 |
$string = str_replace( $remove, '', $string );
|
128 |
}
|
129 |
|
130 |
-
// Undouble separators which have nothing between them, i.e. where a non-replaced variable was removed.
|
131 |
if ( isset( $replacements['%sep%'] ) && Str::is_non_empty( $replacements['%sep%'] ) ) {
|
132 |
$q_sep = preg_quote( $replacements['%sep%'], '`' );
|
133 |
$string = preg_replace( '`' . $q_sep . '(?:\s*' . $q_sep . ')*`u', $replacements['%sep%'], $string );
|
@@ -137,48 +134,66 @@ class Replace_Vars {
|
|
137 |
}
|
138 |
|
139 |
/**
|
140 |
-
* Register
|
141 |
-
*
|
142 |
*
|
143 |
-
* @
|
|
|
|
|
|
|
|
|
144 |
*
|
145 |
-
* @param string $var The name of the variable to replace, i.e. '%var%' the surrounding % are optional.
|
146 |
-
* @param mixed $callback Function or method to call to retrieve the replacement value for the variable
|
147 |
-
* and should *return* the replacement value. DON'T echo it.
|
148 |
-
* @param array $args Array with title, desc and example values.
|
149 |
* @return bool Whether the replacement function was succesfully registered.
|
150 |
*/
|
151 |
public static function register_replacement( $var, $callback, $args = [] ) {
|
152 |
$success = false;
|
153 |
|
154 |
-
if ( !
|
155 |
return false;
|
156 |
}
|
157 |
|
158 |
$var = self::remove_var_delimiter( $var );
|
159 |
|
160 |
-
if ( false === preg_match( '`^[A-Z0-9_-]+$`i', $var ) ) {
|
161 |
-
trigger_error( esc_html__( 'A replacement variable can only contain alphanumeric characters, an underscore or a dash. Try renaming your variable.', 'rank-math' ), E_USER_WARNING );
|
162 |
-
return false;
|
163 |
-
}
|
164 |
-
|
165 |
if ( ! method_exists( __CLASS__, 'get_' . $var ) ) {
|
166 |
if ( ! isset( self::$external_replacements[ $var ] ) ) {
|
167 |
$success = true;
|
168 |
$args['callback'] = $callback;
|
169 |
self::$external_replacements[ $var ] = $args;
|
170 |
-
|
171 |
-
|
172 |
}
|
173 |
-
|
174 |
-
trigger_error( esc_html__( '
|
|
|
175 |
}
|
176 |
|
|
|
177 |
return $success;
|
178 |
}
|
179 |
|
180 |
/**
|
181 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
182 |
*/
|
183 |
public static function setup_json() {
|
184 |
|
@@ -248,7 +263,7 @@ class Replace_Vars {
|
|
248 |
}
|
249 |
|
250 |
/**
|
251 |
-
*
|
252 |
*/
|
253 |
public static function setup() {
|
254 |
global $wp_customize;
|
@@ -262,8 +277,7 @@ class Replace_Vars {
|
|
262 |
|
263 |
if ( empty( self::$external_replacements ) ) {
|
264 |
/**
|
265 |
-
* Action: 'rank_math/vars/register_extra_replacements' - Allows
|
266 |
-
* variables to replace.
|
267 |
*/
|
268 |
do_action( 'rank_math/vars/register_extra_replacements' );
|
269 |
}
|
@@ -568,9 +582,9 @@ class Replace_Vars {
|
|
568 |
}
|
569 |
|
570 |
/**
|
571 |
-
*
|
572 |
*
|
573 |
-
* @return string
|
574 |
*/
|
575 |
protected function get_queried_post_type() {
|
576 |
$post_type = get_post_type();
|
@@ -588,7 +602,7 @@ class Replace_Vars {
|
|
588 |
}
|
589 |
|
590 |
/**
|
591 |
-
* Get the separator
|
592 |
*
|
593 |
* @return string
|
594 |
*/
|
@@ -599,8 +613,7 @@ class Replace_Vars {
|
|
599 |
}
|
600 |
|
601 |
/**
|
602 |
-
* Get the
|
603 |
-
* Only applicable for hierarchical post types.
|
604 |
*
|
605 |
* @return string|null
|
606 |
*/
|
@@ -617,7 +630,7 @@ class Replace_Vars {
|
|
617 |
}
|
618 |
|
619 |
/**
|
620 |
-
* Get the site
|
621 |
*
|
622 |
* @return string|null
|
623 |
*/
|
@@ -635,7 +648,7 @@ class Replace_Vars {
|
|
635 |
}
|
636 |
|
637 |
/**
|
638 |
-
* Get the site
|
639 |
*
|
640 |
* @return string|null
|
641 |
*/
|
@@ -653,9 +666,9 @@ class Replace_Vars {
|
|
653 |
}
|
654 |
|
655 |
/**
|
656 |
-
* Get the date of the post
|
657 |
*
|
658 |
-
* @param string $format (Optional) PHP date format
|
659 |
* @return string|null
|
660 |
*/
|
661 |
private function get_date( $format = '' ) {
|
@@ -680,9 +693,9 @@ class Replace_Vars {
|
|
680 |
}
|
681 |
|
682 |
/**
|
683 |
-
* Get the post
|
684 |
*
|
685 |
-
* @param string $format (Optional) PHP date format
|
686 |
* @return string|null
|
687 |
*/
|
688 |
private function get_modified( $format = '' ) {
|
@@ -697,8 +710,7 @@ class Replace_Vars {
|
|
697 |
}
|
698 |
|
699 |
/**
|
700 |
-
* Get the post
|
701 |
-
* The excerpt will be auto-generated if it does not exist.
|
702 |
*
|
703 |
* @return string|null
|
704 |
*/
|
@@ -717,7 +729,7 @@ class Replace_Vars {
|
|
717 |
}
|
718 |
|
719 |
/**
|
720 |
-
* Get the post
|
721 |
*
|
722 |
* @return string|null
|
723 |
*/
|
@@ -732,7 +744,7 @@ class Replace_Vars {
|
|
732 |
}
|
733 |
|
734 |
/**
|
735 |
-
* Get the current tag
|
736 |
*
|
737 |
* @return string|null
|
738 |
*/
|
@@ -750,9 +762,9 @@ class Replace_Vars {
|
|
750 |
}
|
751 |
|
752 |
/**
|
753 |
-
* Get the current tags
|
754 |
*
|
755 |
-
* @param array $args Arguments
|
756 |
* @return string|null
|
757 |
*/
|
758 |
private function get_tags( $args = [] ) {
|
@@ -769,7 +781,7 @@ class Replace_Vars {
|
|
769 |
}
|
770 |
|
771 |
/**
|
772 |
-
* Get the post
|
773 |
*
|
774 |
* @return string|null
|
775 |
*/
|
@@ -791,7 +803,7 @@ class Replace_Vars {
|
|
791 |
}
|
792 |
|
793 |
/**
|
794 |
-
* Get the post
|
795 |
*
|
796 |
* @param array $args Array of arguments.
|
797 |
* @return string|null
|
@@ -810,7 +822,7 @@ class Replace_Vars {
|
|
810 |
}
|
811 |
|
812 |
/**
|
813 |
-
* Get the term name
|
814 |
*
|
815 |
* @return string|null
|
816 |
*/
|
@@ -828,7 +840,7 @@ class Replace_Vars {
|
|
828 |
}
|
829 |
|
830 |
/**
|
831 |
-
* Get the term description
|
832 |
*
|
833 |
* @return string|null
|
834 |
*/
|
@@ -849,7 +861,7 @@ class Replace_Vars {
|
|
849 |
}
|
850 |
|
851 |
/**
|
852 |
-
* Get the current search
|
853 |
*
|
854 |
* @return string|null
|
855 |
*/
|
@@ -867,7 +879,7 @@ class Replace_Vars {
|
|
867 |
}
|
868 |
|
869 |
/**
|
870 |
-
* Get the post
|
871 |
*
|
872 |
* @return string
|
873 |
*/
|
@@ -876,7 +888,7 @@ class Replace_Vars {
|
|
876 |
}
|
877 |
|
878 |
/**
|
879 |
-
* Get the post
|
880 |
*
|
881 |
* @return string|null
|
882 |
*/
|
@@ -893,7 +905,7 @@ class Replace_Vars {
|
|
893 |
}
|
894 |
|
895 |
/**
|
896 |
-
* Get the filename of the attachment.
|
897 |
*
|
898 |
* @return string|null
|
899 |
*/
|
@@ -905,13 +917,13 @@ class Replace_Vars {
|
|
905 |
$replacement = null;
|
906 |
$name = \pathinfo( $this->args->filename );
|
907 |
|
908 |
-
// Remove size if
|
909 |
$name = explode( '-', $name['filename'] );
|
910 |
if ( Str::contains( 'x', end( $name ) ) ) {
|
911 |
array_pop( $name );
|
912 |
}
|
913 |
|
914 |
-
// Format
|
915 |
$name = join( ' ', $name );
|
916 |
$name = trim( str_replace( '_', ' ', $name ) );
|
917 |
if ( '' !== $name ) {
|
@@ -922,7 +934,7 @@ class Replace_Vars {
|
|
922 |
}
|
923 |
|
924 |
/**
|
925 |
-
* Get the post
|
926 |
*
|
927 |
* @return string|null
|
928 |
*/
|
@@ -939,7 +951,7 @@ class Replace_Vars {
|
|
939 |
}
|
940 |
|
941 |
/**
|
942 |
-
* Get the post
|
943 |
*
|
944 |
* @return string|null
|
945 |
*/
|
@@ -954,7 +966,7 @@ class Replace_Vars {
|
|
954 |
}
|
955 |
|
956 |
/**
|
957 |
-
* Get the
|
958 |
*
|
959 |
* @return string|null
|
960 |
*/
|
@@ -972,7 +984,7 @@ class Replace_Vars {
|
|
972 |
}
|
973 |
|
974 |
/**
|
975 |
-
* Get the current page number
|
976 |
*
|
977 |
* @return string
|
978 |
*/
|
@@ -992,7 +1004,7 @@ class Replace_Vars {
|
|
992 |
}
|
993 |
|
994 |
/**
|
995 |
-
* Get the
|
996 |
*
|
997 |
* @return string|null
|
998 |
*/
|
@@ -1008,7 +1020,7 @@ class Replace_Vars {
|
|
1008 |
}
|
1009 |
|
1010 |
/**
|
1011 |
-
* Get the
|
1012 |
*
|
1013 |
* @return string|null
|
1014 |
*/
|
@@ -1024,9 +1036,9 @@ class Replace_Vars {
|
|
1024 |
}
|
1025 |
|
1026 |
/**
|
1027 |
-
* Get the current time
|
1028 |
*
|
1029 |
-
* @param string $format (Optional) PHP date format
|
1030 |
* @return string
|
1031 |
*/
|
1032 |
private function get_currenttime( $format = '' ) {
|
@@ -1041,9 +1053,9 @@ class Replace_Vars {
|
|
1041 |
}
|
1042 |
|
1043 |
/**
|
1044 |
-
* Get the current date
|
1045 |
*
|
1046 |
-
* @param string $format (Optional) PHP date format
|
1047 |
* @return string
|
1048 |
*/
|
1049 |
private function get_currentdate( $format = '' ) {
|
@@ -1058,7 +1070,7 @@ class Replace_Vars {
|
|
1058 |
}
|
1059 |
|
1060 |
/**
|
1061 |
-
* Get the current day
|
1062 |
*
|
1063 |
* @return string
|
1064 |
*/
|
@@ -1073,7 +1085,7 @@ class Replace_Vars {
|
|
1073 |
}
|
1074 |
|
1075 |
/**
|
1076 |
-
* Get the current month
|
1077 |
*
|
1078 |
* @return string
|
1079 |
*/
|
@@ -1088,7 +1100,7 @@ class Replace_Vars {
|
|
1088 |
}
|
1089 |
|
1090 |
/**
|
1091 |
-
* Get the current year
|
1092 |
*
|
1093 |
* @return string
|
1094 |
*/
|
@@ -1103,7 +1115,7 @@ class Replace_Vars {
|
|
1103 |
}
|
1104 |
|
1105 |
/**
|
1106 |
-
* Get the post type single label
|
1107 |
*
|
1108 |
* @return string|null
|
1109 |
*/
|
@@ -1119,9 +1131,9 @@ class Replace_Vars {
|
|
1119 |
}
|
1120 |
|
1121 |
/**
|
1122 |
-
* Get a
|
1123 |
*
|
1124 |
-
* @param string $name The name of custom field
|
1125 |
* @return string|null
|
1126 |
*/
|
1127 |
private function get_customfield( $name ) {
|
@@ -1142,9 +1154,9 @@ class Replace_Vars {
|
|
1142 |
|
1143 |
|
1144 |
/**
|
1145 |
-
* Get a
|
1146 |
*
|
1147 |
-
* @param string $name The name of the taxonomy
|
1148 |
* @return string|null
|
1149 |
*/
|
1150 |
private function get_customterm( $name ) {
|
@@ -1173,7 +1185,7 @@ class Replace_Vars {
|
|
1173 |
}
|
1174 |
|
1175 |
/**
|
1176 |
-
* Get the post type plural label
|
1177 |
*
|
1178 |
* @return string|null
|
1179 |
*/
|
@@ -1189,20 +1201,20 @@ class Replace_Vars {
|
|
1189 |
}
|
1190 |
|
1191 |
/**
|
1192 |
-
*
|
1193 |
*
|
1194 |
-
* @param array $matches
|
1195 |
-
* @param array $
|
1196 |
-
*
|
1197 |
-
*
|
1198 |
*/
|
1199 |
-
private function set_up_replacements( $matches, $
|
1200 |
$replacements = [];
|
1201 |
|
1202 |
foreach ( $matches[1] as $k => $var ) {
|
1203 |
|
1204 |
-
// Don't set up replacements
|
1205 |
-
if ( in_array( $var, $
|
1206 |
continue;
|
1207 |
}
|
1208 |
|
@@ -1221,7 +1233,7 @@ class Replace_Vars {
|
|
1221 |
$replacement = call_user_func( self::$external_replacements[ $var ]['callback'], $var, $args );
|
1222 |
}
|
1223 |
|
1224 |
-
//
|
1225 |
if ( isset( $replacement ) ) {
|
1226 |
$var = self::add_var_delimiter( $var );
|
1227 |
$replacements[ $var ] = $replacement;
|
@@ -1234,7 +1246,7 @@ class Replace_Vars {
|
|
1234 |
}
|
1235 |
|
1236 |
/**
|
1237 |
-
* Get the title of the post
|
1238 |
*
|
1239 |
* @return string|null
|
1240 |
*/
|
@@ -1253,9 +1265,10 @@ class Replace_Vars {
|
|
1253 |
}
|
1254 |
|
1255 |
/**
|
1256 |
-
* Convert string to
|
|
|
|
|
1257 |
*
|
1258 |
-
* @param string $string The string need to be convereted.
|
1259 |
* @return array
|
1260 |
*/
|
1261 |
private function normalize_args( $string ) {
|
@@ -1267,19 +1280,20 @@ class Replace_Vars {
|
|
1267 |
}
|
1268 |
|
1269 |
/**
|
1270 |
-
* Get a post's terms
|
1271 |
*
|
1272 |
-
* @param int $id ID of the post
|
1273 |
-
* @param string $taxonomy The taxonomy to get the terms
|
1274 |
-
* @param bool $return_single
|
1275 |
-
* @param array $args Array of
|
1276 |
* @param string $field The term field to return.
|
1277 |
-
*
|
|
|
1278 |
*/
|
1279 |
private function get_terms( $id, $taxonomy, $return_single = false, $args = [], $field = 'name' ) {
|
1280 |
$output = '';
|
1281 |
|
1282 |
-
// If we're on a
|
1283 |
if ( is_category() || is_tag() || is_tax() ) {
|
1284 |
$term = $GLOBALS['wp_query']->get_queried_object();
|
1285 |
$output = $term->name;
|
@@ -1328,9 +1342,9 @@ class Replace_Vars {
|
|
1328 |
unset( $terms, $term );
|
1329 |
|
1330 |
/**
|
1331 |
-
* Allows
|
1332 |
*
|
1333 |
-
* @param string $output
|
1334 |
*/
|
1335 |
return $this->do_filter( 'vars/terms', $output );
|
1336 |
}
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Variable replacer.
|
4 |
*
|
5 |
+
* Replace '%variables%' in strings based on context.
|
|
|
6 |
*
|
7 |
* @since 0.9.0
|
8 |
* @package RankMath
|
49 |
protected static $counters = [];
|
50 |
|
51 |
/**
|
52 |
+
* Default post data.
|
53 |
*
|
54 |
* @var array
|
55 |
*/
|
69 |
);
|
70 |
|
71 |
/**
|
72 |
+
* Replace `%variables%` with context-dependent value.
|
73 |
*
|
74 |
+
* @param string $string The string containing the %variables%.
|
75 |
+
* @param array $args Context object, can be post, taxonomy or term.
|
76 |
+
* @param array $exclude Excluded variables won't be replaced.
|
77 |
* @return string
|
78 |
*/
|
79 |
+
public function replace( $string, $args = [], $exclude = [] ) {
|
80 |
$string = strip_tags( $string );
|
81 |
|
82 |
+
// Bail early.
|
83 |
if ( ! Str::contains( '%', $string ) ) {
|
84 |
return $string;
|
85 |
}
|
90 |
|
91 |
$this->args = (object) wp_parse_args( $args, $this->defaults );
|
92 |
|
93 |
+
// Clean $exclude.
|
94 |
+
if ( is_array( $exclude ) && ! empty( $exclude ) ) {
|
95 |
+
$exclude = array_map( array( __CLASS__, 'remove_var_delimiter' ), $exclude );
|
96 |
}
|
97 |
|
98 |
$replacements = [];
|
99 |
if ( preg_match_all( '/%(([a-z0-9_-]+)\(([^)]*)\)|[^\s]+)%/iu', $string, $matches ) ) {
|
100 |
+
$replacements = $this->set_up_replacements( $matches, $exclude );
|
101 |
}
|
102 |
|
103 |
/**
|
104 |
+
* Filter: Allow customizing the replacements.
|
105 |
*
|
106 |
+
* @param array $replacements
|
107 |
*/
|
108 |
$replacements = $this->do_filter( 'replacements', $replacements );
|
109 |
|
110 |
+
// Do the replacements.
|
111 |
if ( is_array( $replacements ) && [] !== $replacements ) {
|
112 |
$string = str_replace( array_keys( $replacements ), array_values( $replacements ), $string );
|
113 |
}
|
114 |
|
115 |
/**
|
116 |
+
* Filter: strip variables which don't have a replacement.
|
117 |
*
|
|
|
118 |
* @param bool $final
|
119 |
*/
|
120 |
+
if ( true === $this->do_filter( 'replacements_remove_nonreplaced', true ) && ( isset( $matches[1] ) && is_array( $matches[1] ) ) ) {
|
121 |
// Remove non-replaced variables.
|
122 |
+
// Don't remove the $exclude variables.
|
123 |
+
$remove = array_diff( $matches[1], $exclude );
|
124 |
$remove = array_map( array( __CLASS__, 'add_var_delimiter' ), $remove );
|
125 |
$string = str_replace( $remove, '', $string );
|
126 |
}
|
127 |
|
|
|
128 |
if ( isset( $replacements['%sep%'] ) && Str::is_non_empty( $replacements['%sep%'] ) ) {
|
129 |
$q_sep = preg_quote( $replacements['%sep%'], '`' );
|
130 |
$string = preg_replace( '`' . $q_sep . '(?:\s*' . $q_sep . ')*`u', $replacements['%sep%'], $string );
|
134 |
}
|
135 |
|
136 |
/**
|
137 |
+
* Register extra %variables%. For developers.
|
138 |
+
* See rank_math_register_var_replacement().
|
139 |
*
|
140 |
+
* @codeCoverageIgnore
|
141 |
+
*
|
142 |
+
* @param string $var Variable name, for example %custom%. '%' signs are optional.
|
143 |
+
* @param mixed $callback Replacement callback. Should return value, not output it.
|
144 |
+
* @param array $args Array with additional title, description and example values for the variable.
|
145 |
*
|
|
|
|
|
|
|
|
|
146 |
* @return bool Whether the replacement function was succesfully registered.
|
147 |
*/
|
148 |
public static function register_replacement( $var, $callback, $args = [] ) {
|
149 |
$success = false;
|
150 |
|
151 |
+
if ( ! self::is_valid_variable( $var ) ) {
|
152 |
return false;
|
153 |
}
|
154 |
|
155 |
$var = self::remove_var_delimiter( $var );
|
156 |
|
|
|
|
|
|
|
|
|
|
|
157 |
if ( ! method_exists( __CLASS__, 'get_' . $var ) ) {
|
158 |
if ( ! isset( self::$external_replacements[ $var ] ) ) {
|
159 |
$success = true;
|
160 |
$args['callback'] = $callback;
|
161 |
self::$external_replacements[ $var ] = $args;
|
162 |
+
|
163 |
+
return $success;
|
164 |
}
|
165 |
+
|
166 |
+
trigger_error( esc_html__( 'The variable has already been registered.', 'rank-math' ), E_USER_WARNING );
|
167 |
+
return $success;
|
168 |
}
|
169 |
|
170 |
+
trigger_error( esc_html__( 'Standard variables cannot be overridden by registering them again. Use the "rankmath/replacements" filter for this.', 'rank-math' ), E_USER_WARNING );
|
171 |
return $success;
|
172 |
}
|
173 |
|
174 |
/**
|
175 |
+
* Check if variable is valid before further processing.
|
176 |
+
*
|
177 |
+
* @param string $var Variable name.
|
178 |
+
*
|
179 |
+
* @return boolean Whether the variable is valid or not.
|
180 |
+
*/
|
181 |
+
public static function is_valid_variable( $var ) {
|
182 |
+
if ( ! is_string( $var ) || empty( $var ) ) {
|
183 |
+
return false;
|
184 |
+
}
|
185 |
+
|
186 |
+
$var = self::remove_var_delimiter( $var );
|
187 |
+
if ( false === preg_match( '`^[A-Z0-9_-]+$`i', $var ) ) {
|
188 |
+
trigger_error( esc_html__( 'Variable names can only contain alphanumeric characters, underscores and dashes.', 'rank-math' ), E_USER_WARNING );
|
189 |
+
return false;
|
190 |
+
}
|
191 |
+
|
192 |
+
return true;
|
193 |
+
}
|
194 |
+
|
195 |
+
/**
|
196 |
+
* Enqueue styles and scripts.
|
197 |
*/
|
198 |
public static function setup_json() {
|
199 |
|
263 |
}
|
264 |
|
265 |
/**
|
266 |
+
* Set up replacements.
|
267 |
*/
|
268 |
public static function setup() {
|
269 |
global $wp_customize;
|
277 |
|
278 |
if ( empty( self::$external_replacements ) ) {
|
279 |
/**
|
280 |
+
* Action: 'rank_math/vars/register_extra_replacements' - Allows adding extra variables.
|
|
|
281 |
*/
|
282 |
do_action( 'rank_math/vars/register_extra_replacements' );
|
283 |
}
|
582 |
}
|
583 |
|
584 |
/**
|
585 |
+
* Get the current post type.
|
586 |
*
|
587 |
+
* @return string Post type name.
|
588 |
*/
|
589 |
protected function get_queried_post_type() {
|
590 |
$post_type = get_post_type();
|
602 |
}
|
603 |
|
604 |
/**
|
605 |
+
* Get the separator to use as a replacement.
|
606 |
*
|
607 |
* @return string
|
608 |
*/
|
613 |
}
|
614 |
|
615 |
/**
|
616 |
+
* Get the parent page title of the current page/CPT to use as a replacement.
|
|
|
617 |
*
|
618 |
* @return string|null
|
619 |
*/
|
630 |
}
|
631 |
|
632 |
/**
|
633 |
+
* Get the site name to use as a replacement.
|
634 |
*
|
635 |
* @return string|null
|
636 |
*/
|
648 |
}
|
649 |
|
650 |
/**
|
651 |
+
* Get the site tag line to use as a replacement.
|
652 |
*
|
653 |
* @return string|null
|
654 |
*/
|
666 |
}
|
667 |
|
668 |
/**
|
669 |
+
* Get the date of the post to use as a replacement.
|
670 |
*
|
671 |
+
* @param string $format (Optional) PHP date format.
|
672 |
* @return string|null
|
673 |
*/
|
674 |
private function get_date( $format = '' ) {
|
693 |
}
|
694 |
|
695 |
/**
|
696 |
+
* Get the post modified time to use as a replacement.
|
697 |
*
|
698 |
+
* @param string $format (Optional) PHP date format.
|
699 |
* @return string|null
|
700 |
*/
|
701 |
private function get_modified( $format = '' ) {
|
710 |
}
|
711 |
|
712 |
/**
|
713 |
+
* Get the post excerpt to use as a replacement. It will be auto-generated if it does not exist.
|
|
|
714 |
*
|
715 |
* @return string|null
|
716 |
*/
|
729 |
}
|
730 |
|
731 |
/**
|
732 |
+
* Get the post excerpt to use as a replacement (without auto-generating).
|
733 |
*
|
734 |
* @return string|null
|
735 |
*/
|
744 |
}
|
745 |
|
746 |
/**
|
747 |
+
* Get the current tag to use as a replacement.
|
748 |
*
|
749 |
* @return string|null
|
750 |
*/
|
762 |
}
|
763 |
|
764 |
/**
|
765 |
+
* Get the current tags to use as a replacement.
|
766 |
*
|
767 |
+
* @param array $args Arguments for get_terms().
|
768 |
* @return string|null
|
769 |
*/
|
770 |
private function get_tags( $args = [] ) {
|
781 |
}
|
782 |
|
783 |
/**
|
784 |
+
* Get the post category to use as a replacement.
|
785 |
*
|
786 |
* @return string|null
|
787 |
*/
|
803 |
}
|
804 |
|
805 |
/**
|
806 |
+
* Get the comma-separate post categories to use as a replacement.
|
807 |
*
|
808 |
* @param array $args Array of arguments.
|
809 |
* @return string|null
|
822 |
}
|
823 |
|
824 |
/**
|
825 |
+
* Get the term name to use as a replacement.
|
826 |
*
|
827 |
* @return string|null
|
828 |
*/
|
840 |
}
|
841 |
|
842 |
/**
|
843 |
+
* Get the term description to use as a replacement.
|
844 |
*
|
845 |
* @return string|null
|
846 |
*/
|
861 |
}
|
862 |
|
863 |
/**
|
864 |
+
* Get the current search query to use as a replacement
|
865 |
*
|
866 |
* @return string|null
|
867 |
*/
|
879 |
}
|
880 |
|
881 |
/**
|
882 |
+
* Get the post author's user ID to use as a replacement.
|
883 |
*
|
884 |
* @return string
|
885 |
*/
|
888 |
}
|
889 |
|
890 |
/**
|
891 |
+
* Get the post author's "nice name" to use as a replacement.
|
892 |
*
|
893 |
* @return string|null
|
894 |
*/
|
905 |
}
|
906 |
|
907 |
/**
|
908 |
+
* Get the filename of the attachment to use as a replacement.
|
909 |
*
|
910 |
* @return string|null
|
911 |
*/
|
917 |
$replacement = null;
|
918 |
$name = \pathinfo( $this->args->filename );
|
919 |
|
920 |
+
// Remove size if embedded.
|
921 |
$name = explode( '-', $name['filename'] );
|
922 |
if ( Str::contains( 'x', end( $name ) ) ) {
|
923 |
array_pop( $name );
|
924 |
}
|
925 |
|
926 |
+
// Format filename.
|
927 |
$name = join( ' ', $name );
|
928 |
$name = trim( str_replace( '_', ' ', $name ) );
|
929 |
if ( '' !== $name ) {
|
934 |
}
|
935 |
|
936 |
/**
|
937 |
+
* Get the post author's user description to use as a replacement.
|
938 |
*
|
939 |
* @return string|null
|
940 |
*/
|
951 |
}
|
952 |
|
953 |
/**
|
954 |
+
* Get the numeric post ID to use as a replacement
|
955 |
*
|
956 |
* @return string|null
|
957 |
*/
|
966 |
}
|
967 |
|
968 |
/**
|
969 |
+
* Get the focus keyword to use as a replacement.
|
970 |
*
|
971 |
* @return string|null
|
972 |
*/
|
984 |
}
|
985 |
|
986 |
/**
|
987 |
+
* Get the current page number (i.e. "page 2 of 4") to use as a replacement.
|
988 |
*
|
989 |
* @return string
|
990 |
*/
|
1004 |
}
|
1005 |
|
1006 |
/**
|
1007 |
+
* Get only the page number (without context) to use as a replacement.
|
1008 |
*
|
1009 |
* @return string|null
|
1010 |
*/
|
1020 |
}
|
1021 |
|
1022 |
/**
|
1023 |
+
* Get the may page number to use as a replacement.
|
1024 |
*
|
1025 |
* @return string|null
|
1026 |
*/
|
1036 |
}
|
1037 |
|
1038 |
/**
|
1039 |
+
* Get the current time to use as a replacement.
|
1040 |
*
|
1041 |
+
* @param string $format (Optional) PHP date format.
|
1042 |
* @return string
|
1043 |
*/
|
1044 |
private function get_currenttime( $format = '' ) {
|
1053 |
}
|
1054 |
|
1055 |
/**
|
1056 |
+
* Get the current date to use as a replacement.
|
1057 |
*
|
1058 |
+
* @param string $format (Optional) PHP date format.
|
1059 |
* @return string
|
1060 |
*/
|
1061 |
private function get_currentdate( $format = '' ) {
|
1070 |
}
|
1071 |
|
1072 |
/**
|
1073 |
+
* Get the current day to use as a replacement.
|
1074 |
*
|
1075 |
* @return string
|
1076 |
*/
|
1085 |
}
|
1086 |
|
1087 |
/**
|
1088 |
+
* Get the current month to use as a replacement.
|
1089 |
*
|
1090 |
* @return string
|
1091 |
*/
|
1100 |
}
|
1101 |
|
1102 |
/**
|
1103 |
+
* Get the current year to use as a replacement.
|
1104 |
*
|
1105 |
* @return string
|
1106 |
*/
|
1115 |
}
|
1116 |
|
1117 |
/**
|
1118 |
+
* Get the post type "single" label to use as a replacement.
|
1119 |
*
|
1120 |
* @return string|null
|
1121 |
*/
|
1131 |
}
|
1132 |
|
1133 |
/**
|
1134 |
+
* Get a specific custom field value to use as a replacement.
|
1135 |
*
|
1136 |
+
* @param string $name The name of the custom field to retrieve.
|
1137 |
* @return string|null
|
1138 |
*/
|
1139 |
private function get_customfield( $name ) {
|
1154 |
|
1155 |
|
1156 |
/**
|
1157 |
+
* Get a custom taxonomy term to use as a replacement.
|
1158 |
*
|
1159 |
+
* @param string $name The name of the taxonomy.
|
1160 |
* @return string|null
|
1161 |
*/
|
1162 |
private function get_customterm( $name ) {
|
1185 |
}
|
1186 |
|
1187 |
/**
|
1188 |
+
* Get the post type "plural" label to use as a replacement.
|
1189 |
*
|
1190 |
* @return string|null
|
1191 |
*/
|
1201 |
}
|
1202 |
|
1203 |
/**
|
1204 |
+
* Get the replacements for the variables.
|
1205 |
*
|
1206 |
+
* @param array $matches Regex matches found in the string.
|
1207 |
+
* @param array $exclude Variables that should not be replaced.
|
1208 |
+
*
|
1209 |
+
* @return array Retrieved replacements.
|
1210 |
*/
|
1211 |
+
private function set_up_replacements( $matches, $exclude ) {
|
1212 |
$replacements = [];
|
1213 |
|
1214 |
foreach ( $matches[1] as $k => $var ) {
|
1215 |
|
1216 |
+
// Don't set up excluded replacements.
|
1217 |
+
if ( in_array( $var, $exclude, true ) ) {
|
1218 |
continue;
|
1219 |
}
|
1220 |
|
1233 |
$replacement = call_user_func( self::$external_replacements[ $var ]['callback'], $var, $args );
|
1234 |
}
|
1235 |
|
1236 |
+
// If replacement value is null, remove it.
|
1237 |
if ( isset( $replacement ) ) {
|
1238 |
$var = self::add_var_delimiter( $var );
|
1239 |
$replacements[ $var ] = $replacement;
|
1246 |
}
|
1247 |
|
1248 |
/**
|
1249 |
+
* Get the title of the post to use as a replacement.
|
1250 |
*
|
1251 |
* @return string|null
|
1252 |
*/
|
1265 |
}
|
1266 |
|
1267 |
/**
|
1268 |
+
* Convert arguments string to arguments array.
|
1269 |
+
*
|
1270 |
+
* @param string $string The string that needs to be converted.
|
1271 |
*
|
|
|
1272 |
* @return array
|
1273 |
*/
|
1274 |
private function normalize_args( $string ) {
|
1280 |
}
|
1281 |
|
1282 |
/**
|
1283 |
+
* Get a comma separated list of the post's terms.
|
1284 |
*
|
1285 |
+
* @param int $id ID of the post.
|
1286 |
+
* @param string $taxonomy The taxonomy to get the terms from.
|
1287 |
+
* @param bool $return_single Return the first term only.
|
1288 |
+
* @param array $args Array of arguments.
|
1289 |
* @param string $field The term field to return.
|
1290 |
+
*
|
1291 |
+
* @return string Either a single term field or a comma delimited list of terms.
|
1292 |
*/
|
1293 |
private function get_terms( $id, $taxonomy, $return_single = false, $args = [], $field = 'name' ) {
|
1294 |
$output = '';
|
1295 |
|
1296 |
+
// If we're on a taxonomy archive, use the selected term.
|
1297 |
if ( is_category() || is_tag() || is_tax() ) {
|
1298 |
$term = $GLOBALS['wp_query']->get_queried_object();
|
1299 |
$output = $term->name;
|
1342 |
unset( $terms, $term );
|
1343 |
|
1344 |
/**
|
1345 |
+
* Filter: Allows changing the %category% and %tag% terms lists.
|
1346 |
*
|
1347 |
+
* @param string $output The terms list, comma separated.
|
1348 |
*/
|
1349 |
return $this->do_filter( 'vars/terms', $output );
|
1350 |
}
|
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
* This
|
4 |
*
|
5 |
* @since 0.9.0
|
6 |
* @package RankMath
|
@@ -65,9 +65,10 @@ class Rewrite {
|
|
65 |
}
|
66 |
|
67 |
/**
|
68 |
-
* Redirect the user permalink
|
|
|
|
|
69 |
*
|
70 |
-
* @param array $query_vars Query vars to check for existence of redirect var.
|
71 |
* @return array
|
72 |
*/
|
73 |
public function author_request( $query_vars ) {
|
@@ -87,7 +88,7 @@ class Rewrite {
|
|
87 |
}
|
88 |
|
89 |
/**
|
90 |
-
*
|
91 |
*/
|
92 |
public function remove_rules() {
|
93 |
$this->remove_filter( 'query_vars', 'query_vars' );
|
@@ -99,13 +100,13 @@ class Rewrite {
|
|
99 |
}
|
100 |
|
101 |
/**
|
102 |
-
* Change author
|
103 |
*/
|
104 |
public static function change_author_base() {
|
105 |
global $wp_rewrite;
|
106 |
|
107 |
/**
|
108 |
-
*
|
109 |
*
|
110 |
* @param string $base The author base.
|
111 |
*/
|
@@ -119,9 +120,10 @@ class Rewrite {
|
|
119 |
}
|
120 |
|
121 |
/**
|
122 |
-
*
|
|
|
|
|
123 |
*
|
124 |
-
* @param array $query_vars Main query vars to filter.
|
125 |
* @return array
|
126 |
*/
|
127 |
public function query_vars( $query_vars ) {
|
@@ -131,9 +133,9 @@ class Rewrite {
|
|
131 |
}
|
132 |
|
133 |
/**
|
134 |
-
* Redirect the
|
135 |
*
|
136 |
-
* @param array $query_vars Query vars to check for
|
137 |
* @return array
|
138 |
*/
|
139 |
public function request( $query_vars ) {
|
@@ -147,7 +149,7 @@ class Rewrite {
|
|
147 |
}
|
148 |
|
149 |
/**
|
150 |
-
* This function taken and
|
151 |
*
|
152 |
* @return array
|
153 |
*/
|
@@ -189,7 +191,7 @@ class Rewrite {
|
|
189 |
}
|
190 |
|
191 |
/**
|
192 |
-
*
|
193 |
*
|
194 |
* @param string $link Term link.
|
195 |
* @param object $term Current Term Object.
|
@@ -218,7 +220,7 @@ class Rewrite {
|
|
218 |
}
|
219 |
|
220 |
/**
|
221 |
-
* Get categories
|
222 |
*
|
223 |
* @return array
|
224 |
*/
|
@@ -238,7 +240,7 @@ class Rewrite {
|
|
238 |
}
|
239 |
|
240 |
/**
|
241 |
-
* Get blog prefix
|
242 |
*
|
243 |
* @return string
|
244 |
*/
|
1 |
<?php
|
2 |
/**
|
3 |
+
* This class handles the category and author rewrites.
|
4 |
*
|
5 |
* @since 0.9.0
|
6 |
* @package RankMath
|
65 |
}
|
66 |
|
67 |
/**
|
68 |
+
* Redirect the old user permalink to the new one.
|
69 |
+
*
|
70 |
+
* @param array $query_vars Query vars to check for author_name var.
|
71 |
*
|
|
|
72 |
* @return array
|
73 |
*/
|
74 |
public function author_request( $query_vars ) {
|
88 |
}
|
89 |
|
90 |
/**
|
91 |
+
* Remove the rewrite rules.
|
92 |
*/
|
93 |
public function remove_rules() {
|
94 |
$this->remove_filter( 'query_vars', 'query_vars' );
|
100 |
}
|
101 |
|
102 |
/**
|
103 |
+
* Change the base for author permalinks.
|
104 |
*/
|
105 |
public static function change_author_base() {
|
106 |
global $wp_rewrite;
|
107 |
|
108 |
/**
|
109 |
+
* Filter: Change the author base.
|
110 |
*
|
111 |
* @param string $base The author base.
|
112 |
*/
|
120 |
}
|
121 |
|
122 |
/**
|
123 |
+
* Add the redirect var to the query vars if the "strip category bases" option is enabled.
|
124 |
+
*
|
125 |
+
* @param array $query_vars Query vars to filter.
|
126 |
*
|
|
|
127 |
* @return array
|
128 |
*/
|
129 |
public function query_vars( $query_vars ) {
|
133 |
}
|
134 |
|
135 |
/**
|
136 |
+
* Redirect the original category URL to the new one.
|
137 |
*
|
138 |
+
* @param array $query_vars Query vars to check for redirect var.
|
139 |
* @return array
|
140 |
*/
|
141 |
public function request( $query_vars ) {
|
149 |
}
|
150 |
|
151 |
/**
|
152 |
+
* This function was taken and slightly adapted from WP No Category Base plugin by Saurabh Gupta.
|
153 |
*
|
154 |
* @return array
|
155 |
*/
|
191 |
}
|
192 |
|
193 |
/**
|
194 |
+
* Remove the category base from the category link.
|
195 |
*
|
196 |
* @param string $link Term link.
|
197 |
* @param object $term Current Term Object.
|
220 |
}
|
221 |
|
222 |
/**
|
223 |
+
* Get categories with WPML compatibility.
|
224 |
*
|
225 |
* @return array
|
226 |
*/
|
240 |
}
|
241 |
|
242 |
/**
|
243 |
+
* Get the blog prefix.
|
244 |
*
|
245 |
* @return string
|
246 |
*/
|
@@ -75,8 +75,8 @@ class Term extends Metadata {
|
|
75 |
/**
|
76 |
* Get term meta value.
|
77 |
*
|
78 |
-
* @param string $key
|
79 |
-
* @param mixed $term Term
|
80 |
* @param string $taxonomy Optional. Limit matched terms to those matching `$taxonomy`. Only used for
|
81 |
* disambiguating potentially shared terms.
|
82 |
* @return mixed
|
@@ -92,7 +92,7 @@ class Term extends Metadata {
|
|
92 |
}
|
93 |
|
94 |
/**
|
95 |
-
* Check if
|
96 |
*
|
97 |
* @return bool
|
98 |
*/
|
75 |
/**
|
76 |
* Get term meta value.
|
77 |
*
|
78 |
+
* @param string $key Meta key.
|
79 |
+
* @param mixed $term Term name, term ID, or term object.
|
80 |
* @param string $taxonomy Optional. Limit matched terms to those matching `$taxonomy`. Only used for
|
81 |
* disambiguating potentially shared terms.
|
82 |
* @return mixed
|
92 |
}
|
93 |
|
94 |
/**
|
95 |
+
* Check if the current query is for multiple terms (e.g. /term-1,term-2/).
|
96 |
*
|
97 |
* @return bool
|
98 |
*/
|
@@ -177,9 +177,9 @@ class Tracking {
|
|
177 |
}
|
178 |
|
179 |
/**
|
180 |
-
*
|
181 |
*
|
182 |
-
* @return array|null The curl info
|
183 |
*/
|
184 |
private function get_curl_info() {
|
185 |
|
@@ -201,9 +201,9 @@ class Tracking {
|
|
201 |
}
|
202 |
|
203 |
/**
|
204 |
-
*
|
205 |
*
|
206 |
-
* @param array $plugin The plugin
|
207 |
* @return array The formatted array.
|
208 |
*/
|
209 |
protected function format_plugin( array $plugin ) {
|
177 |
}
|
178 |
|
179 |
/**
|
180 |
+
* Get curl version and SSL support.
|
181 |
*
|
182 |
+
* @return array|null The curl info in an array or null when curl isn't available.
|
183 |
*/
|
184 |
private function get_curl_info() {
|
185 |
|
201 |
}
|
202 |
|
203 |
/**
|
204 |
+
* Format the plugin array.
|
205 |
*
|
206 |
+
* @param array $plugin The plugin info.
|
207 |
* @return array The formatted array.
|
208 |
*/
|
209 |
protected function format_plugin( array $plugin ) {
|
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
*
|
4 |
*
|
5 |
* @since 0.9.0
|
6 |
* @package RankMath
|
@@ -44,12 +44,12 @@ class Updates implements Runner {
|
|
44 |
}
|
45 |
|
46 |
/**
|
47 |
-
* Check if
|
48 |
*/
|
49 |
public function do_updates() {
|
50 |
$installed_version = get_option( 'rank_math_version' );
|
51 |
|
52 |
-
//
|
53 |
if ( ! $installed_version ) {
|
54 |
return;
|
55 |
}
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Functions and actions related to updates.
|
4 |
*
|
5 |
* @since 0.9.0
|
6 |
* @package RankMath
|
44 |
}
|
45 |
|
46 |
/**
|
47 |
+
* Check if any update is required.
|
48 |
*/
|
49 |
public function do_updates() {
|
50 |
$installed_version = get_option( 'rank_math_version' );
|
51 |
|
52 |
+
// Maybe it's the first install.
|
53 |
if ( ! $installed_version ) {
|
54 |
return;
|
55 |
}
|
@@ -20,17 +20,17 @@ defined( 'ABSPATH' ) || exit;
|
|
20 |
class User extends Metadata {
|
21 |
|
22 |
/**
|
23 |
-
*
|
24 |
*
|
25 |
* @var string
|
26 |
*/
|
27 |
protected $meta_type = 'user';
|
28 |
|
29 |
/**
|
30 |
-
*
|
31 |
*
|
32 |
-
* @param WP_User|object|int $user User
|
33 |
-
* @return User|false User object
|
34 |
*/
|
35 |
public static function get( $user = 0 ) {
|
36 |
if ( is_int( $user ) && 0 === absint( $user ) ) {
|
@@ -55,10 +55,10 @@ class User extends Metadata {
|
|
55 |
}
|
56 |
|
57 |
/**
|
58 |
-
* Get user meta
|
59 |
*
|
60 |
-
* @param string $key
|
61 |
-
* @param mixed $user User
|
62 |
* @return mixed
|
63 |
*/
|
64 |
public static function get_meta( $key, $user = 0 ) {
|
20 |
class User extends Metadata {
|
21 |
|
22 |
/**
|
23 |
+
* The type of object the metadata is for.
|
24 |
*
|
25 |
* @var string
|
26 |
*/
|
27 |
protected $meta_type = 'user';
|
28 |
|
29 |
/**
|
30 |
+
* Get User instance.
|
31 |
*
|
32 |
+
* @param WP_User|object|int $user User ID or user object.
|
33 |
+
* @return User|false User object or false if not found.
|
34 |
*/
|
35 |
public static function get( $user = 0 ) {
|
36 |
if ( is_int( $user ) && 0 === absint( $user ) ) {
|
55 |
}
|
56 |
|
57 |
/**
|
58 |
+
* Get user meta data.
|
59 |
*
|
60 |
+
* @param string $key Meta key.
|
61 |
+
* @param mixed $user User ID or user object.
|
62 |
* @return mixed
|
63 |
*/
|
64 |
public static function get_meta( $key, $user = 0 ) {
|
@@ -272,16 +272,10 @@ class Breadcrumbs {
|
|
272 |
global $post;
|
273 |
|
274 |
$this->prepend_shop_page();
|
275 |
-
$
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
[
|
280 |
-
'orderby' => 'parent',
|
281 |
-
'order' => 'DESC',
|
282 |
-
]
|
283 |
-
)
|
284 |
-
);
|
285 |
|
286 |
if ( isset( $post->ID ) ) {
|
287 |
$this->add_crumb( $this->get_breadcrumb_title( 'post', $post->ID, get_the_title( $post ) ), get_permalink( $post ) );
|
272 |
global $post;
|
273 |
|
274 |
$this->prepend_shop_page();
|
275 |
+
$main_tax = Helper::get_settings( 'titles.pt_product_primary_taxonomy' );
|
276 |
+
if ( $main_tax ) {
|
277 |
+
$this->maybe_add_primary_term( get_the_terms( $post->ID, $main_tax ) );
|
278 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
279 |
|
280 |
if ( isset( $post->ID ) ) {
|
281 |
$this->add_crumb( $this->get_breadcrumb_title( 'post', $post->ID, get_the_title( $post ) ), get_permalink( $post ) );
|
@@ -49,6 +49,7 @@ class Head {
|
|
49 |
$this->action( 'rank_math/head', 'robots', 10 );
|
50 |
$this->action( 'rank_math/head', 'canonical', 20 );
|
51 |
$this->action( 'rank_math/head', 'adjacent_rel_links', 21 );
|
|
|
52 |
|
53 |
$this->filter( 'wp_title', 'title', 15 );
|
54 |
$this->filter( 'thematic_doctitle', 'title', 15 );
|
@@ -243,6 +244,16 @@ class Head {
|
|
243 |
$this->adjacent_rel_links_archive();
|
244 |
}
|
245 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
246 |
/**
|
247 |
* Output the rel next/prev links for a single post / page.
|
248 |
*
|
49 |
$this->action( 'rank_math/head', 'robots', 10 );
|
50 |
$this->action( 'rank_math/head', 'canonical', 20 );
|
51 |
$this->action( 'rank_math/head', 'adjacent_rel_links', 21 );
|
52 |
+
$this->action( 'rank_math/head', 'metakeywords', 22 );
|
53 |
|
54 |
$this->filter( 'wp_title', 'title', 15 );
|
55 |
$this->filter( 'thematic_doctitle', 'title', 15 );
|
244 |
$this->adjacent_rel_links_archive();
|
245 |
}
|
246 |
|
247 |
+
/**
|
248 |
+
* Output the meta keywords value.
|
249 |
+
*/
|
250 |
+
public function metakeywords() {
|
251 |
+
$keywords = Paper::get()->get_keywords();
|
252 |
+
if ( Str::is_non_empty( $keywords ) ) {
|
253 |
+
echo '<meta name="keywords" content="', esc_attr( $keywords ), '"/>', "\n";
|
254 |
+
}
|
255 |
+
}
|
256 |
+
|
257 |
/**
|
258 |
* Output the rel next/prev links for a single post / page.
|
259 |
*
|
@@ -66,6 +66,15 @@ class Archive implements IPaper {
|
|
66 |
return [ 'canonical' => get_post_type_archive_link( $this->get_queried_post_type() ) ];
|
67 |
}
|
68 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
/**
|
70 |
* Retrieves the queried post type
|
71 |
*
|
66 |
return [ 'canonical' => get_post_type_archive_link( $this->get_queried_post_type() ) ];
|
67 |
}
|
68 |
|
69 |
+
/**
|
70 |
+
* Retrieves meta keywords.
|
71 |
+
*
|
72 |
+
* @return string
|
73 |
+
*/
|
74 |
+
public function keywords() {
|
75 |
+
return '';
|
76 |
+
}
|
77 |
+
|
78 |
/**
|
79 |
* Retrieves the queried post type
|
80 |
*
|
@@ -74,4 +74,13 @@ class Author implements IPaper {
|
|
74 |
'canonical_override' => User::get_meta( 'canonical_url', get_query_var( 'author' ) ),
|
75 |
];
|
76 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
77 |
}
|
74 |
'canonical_override' => User::get_meta( 'canonical_url', get_query_var( 'author' ) ),
|
75 |
];
|
76 |
}
|
77 |
+
|
78 |
+
/**
|
79 |
+
* Retrieves the keywords.
|
80 |
+
*
|
81 |
+
* @return string The focus keywords.
|
82 |
+
*/
|
83 |
+
public function keywords() {
|
84 |
+
return User::get_meta( 'focus_keyword', get_query_var( 'author' ) );
|
85 |
+
}
|
86 |
}
|
@@ -74,4 +74,17 @@ class Blog implements IPaper {
|
|
74 |
|
75 |
return [ 'canonical' => $canonical ];
|
76 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
77 |
}
|
74 |
|
75 |
return [ 'canonical' => $canonical ];
|
76 |
}
|
77 |
+
|
78 |
+
/**
|
79 |
+
* Retrieves the keywords.
|
80 |
+
*
|
81 |
+
* @return string The focus keywords.
|
82 |
+
*/
|
83 |
+
public function keywords() {
|
84 |
+
if ( ! Post::is_posts_page() ) {
|
85 |
+
return '';
|
86 |
+
}
|
87 |
+
|
88 |
+
return Post::get_meta( 'focus_keyword', get_option( 'page_for_posts' ) );
|
89 |
+
}
|
90 |
}
|
@@ -70,4 +70,13 @@ class Date implements IPaper {
|
|
70 |
|
71 |
return [ 'canonical' => $canonical ];
|
72 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
}
|
70 |
|
71 |
return [ 'canonical' => $canonical ];
|
72 |
}
|
73 |
+
|
74 |
+
/**
|
75 |
+
* Retrieves meta keywords.
|
76 |
+
*
|
77 |
+
* @return string
|
78 |
+
*/
|
79 |
+
public function keywords() {
|
80 |
+
return '';
|
81 |
+
}
|
82 |
}
|
@@ -52,4 +52,13 @@ class Error_404 implements IPaper {
|
|
52 |
public function canonical() {
|
53 |
return [];
|
54 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
}
|
52 |
public function canonical() {
|
53 |
return [];
|
54 |
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Retrieves meta keywords.
|
58 |
+
*
|
59 |
+
* @return string
|
60 |
+
*/
|
61 |
+
public function keywords() {
|
62 |
+
return '';
|
63 |
+
}
|
64 |
}
|
@@ -65,6 +65,13 @@ class Paper {
|
|
65 |
*/
|
66 |
private $canonical = null;
|
67 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
/**
|
69 |
* Initialize object
|
70 |
*
|
@@ -213,6 +220,36 @@ class Paper {
|
|
213 |
return $this->robots;
|
214 |
}
|
215 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
216 |
/**
|
217 |
* Respect some robots settings.
|
218 |
*/
|
65 |
*/
|
66 |
private $canonical = null;
|
67 |
|
68 |
+
/**
|
69 |
+
* Hold keywords.
|
70 |
+
*
|
71 |
+
* @var string
|
72 |
+
*/
|
73 |
+
private $keywords = null;
|
74 |
+
|
75 |
/**
|
76 |
* Initialize object
|
77 |
*
|
220 |
return $this->robots;
|
221 |
}
|
222 |
|
223 |
+
/**
|
224 |
+
* Get focus keywords
|
225 |
+
*
|
226 |
+
* @return string
|
227 |
+
*/
|
228 |
+
public function get_keywords() {
|
229 |
+
/**
|
230 |
+
* Passing a truthy value to the filter will effectively short-circuit the
|
231 |
+
* set keywords process.
|
232 |
+
*
|
233 |
+
* @param bool $return Short-circuit return value. Either false or true.
|
234 |
+
*/
|
235 |
+
if ( ! apply_filters( 'rank_math/frontend/show_keywords', false ) ) {
|
236 |
+
return false;
|
237 |
+
}
|
238 |
+
|
239 |
+
if ( ! is_null( $this->keywords ) ) {
|
240 |
+
return $this->keywords;
|
241 |
+
}
|
242 |
+
|
243 |
+
$this->keywords = $this->paper->keywords();
|
244 |
+
|
245 |
+
/**
|
246 |
+
* Allows filtering of the meta keywords.
|
247 |
+
*
|
248 |
+
* @param array $keywords The meta keywords to be echoed.
|
249 |
+
*/
|
250 |
+
return apply_filters( 'rank_math/frontend/keywords', $this->keywords );
|
251 |
+
}
|
252 |
+
|
253 |
/**
|
254 |
* Respect some robots settings.
|
255 |
*/
|
@@ -55,4 +55,13 @@ class Search implements IPaper {
|
|
55 |
$search_query = get_search_query();
|
56 |
return [ 'canonical' => ! empty( $search_query ) && ! preg_match( '|^page/\d+$|', $search_query ) ? get_search_link() : '' ];
|
57 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
}
|
55 |
$search_query = get_search_query();
|
56 |
return [ 'canonical' => ! empty( $search_query ) && ! preg_match( '|^page/\d+$|', $search_query ) ? get_search_link() : '' ];
|
57 |
}
|
58 |
+
|
59 |
+
/**
|
60 |
+
* Retrieves meta keywords.
|
61 |
+
*
|
62 |
+
* @return string
|
63 |
+
*/
|
64 |
+
public function keywords() {
|
65 |
+
return '';
|
66 |
+
}
|
67 |
}
|
@@ -58,6 +58,15 @@ class Shop extends Singular {
|
|
58 |
return $this->get_post_robots( $post->get_object() );
|
59 |
}
|
60 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
/**
|
62 |
* Auto-generate description.
|
63 |
*
|
58 |
return $this->get_post_robots( $post->get_object() );
|
59 |
}
|
60 |
|
61 |
+
/**
|
62 |
+
* Retrieves meta keywords.
|
63 |
+
*
|
64 |
+
* @return string The focus keywords.
|
65 |
+
*/
|
66 |
+
public function keywords() {
|
67 |
+
return Post::get_meta( 'focus_keyword', Post::get_shop_page_id() );
|
68 |
+
}
|
69 |
+
|
70 |
/**
|
71 |
* Auto-generate description.
|
72 |
*
|
@@ -83,6 +83,15 @@ class Singular implements IPaper {
|
|
83 |
];
|
84 |
}
|
85 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
/**
|
87 |
* Set post object.
|
88 |
*
|
83 |
];
|
84 |
}
|
85 |
|
86 |
+
/**
|
87 |
+
* Retrieves meta keywords.
|
88 |
+
*
|
89 |
+
* @return string The focus keywords.
|
90 |
+
*/
|
91 |
+
public function keywords() {
|
92 |
+
return Post::get_meta( 'focus_keyword', $this->object->ID );
|
93 |
+
}
|
94 |
+
|
95 |
/**
|
96 |
* Set post object.
|
97 |
*
|
@@ -94,6 +94,21 @@ class Taxonomy implements IPaper {
|
|
94 |
];
|
95 |
}
|
96 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
97 |
/**
|
98 |
* Whether to noindex empty terms.
|
99 |
*
|
94 |
];
|
95 |
}
|
96 |
|
97 |
+
/**
|
98 |
+
* Retrieves the keywords.
|
99 |
+
*
|
100 |
+
* @return string The focus keywords.
|
101 |
+
*/
|
102 |
+
public function keywords() {
|
103 |
+
$object = get_queried_object();
|
104 |
+
|
105 |
+
if ( empty( $object ) || Term::is_multiple_terms_query() ) {
|
106 |
+
return '';
|
107 |
+
}
|
108 |
+
|
109 |
+
return Term::get_meta( 'focus_keyword', $object, $object->taxonomy );
|
110 |
+
}
|
111 |
+
|
112 |
/**
|
113 |
* Whether to noindex empty terms.
|
114 |
*
|
@@ -44,4 +44,11 @@ interface IPaper {
|
|
44 |
* @return array
|
45 |
*/
|
46 |
public function canonical();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
}
|
44 |
* @return array
|
45 |
*/
|
46 |
public function canonical();
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Retrieves the keywords.
|
50 |
+
*
|
51 |
+
* @return string The focus keywords.
|
52 |
+
*/
|
53 |
+
public function keywords();
|
54 |
}
|
@@ -102,16 +102,6 @@ trait Conditional {
|
|
102 |
return true;
|
103 |
}
|
104 |
|
105 |
-
/**
|
106 |
-
* Checks if the WP-REST-API is available.
|
107 |
-
*
|
108 |
-
* @param string $minimum_version The minimum version the API should be.
|
109 |
-
* @return bool Returns true if the API is available.
|
110 |
-
*/
|
111 |
-
public static function is_api_available( $minimum_version = '2.0' ) {
|
112 |
-
return ( defined( 'REST_API_VERSION' ) && version_compare( REST_API_VERSION, $minimum_version, '>=' ) );
|
113 |
-
}
|
114 |
-
|
115 |
/**
|
116 |
* Check if AMP module is active.
|
117 |
*
|
102 |
return true;
|
103 |
}
|
104 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
105 |
/**
|
106 |
* Check if AMP module is active.
|
107 |
*
|
@@ -21,7 +21,7 @@ $cmb->add_field( array(
|
|
21 |
'type' => 'text',
|
22 |
'desc' => esc_html__( 'This is what will appear in the first line when this post shows up in the search results.', 'rank-math' ),
|
23 |
'classes' => 'rank-math-supports-variables',
|
24 |
-
'sanitization_cb' =>
|
25 |
'attributes' => array(
|
26 |
'class' => 'regular-text wp-exclude-emoji',
|
27 |
'data-gramm_editor' => 'false',
|
21 |
'type' => 'text',
|
22 |
'desc' => esc_html__( 'This is what will appear in the first line when this post shows up in the search results.', 'rank-math' ),
|
23 |
'classes' => 'rank-math-supports-variables',
|
24 |
+
'sanitization_cb' => [ '\RankMath\CMB2', 'sanitize_textfield' ],
|
25 |
'attributes' => array(
|
26 |
'class' => 'regular-text wp-exclude-emoji',
|
27 |
'data-gramm_editor' => 'false',
|
@@ -53,8 +53,10 @@ class Admin extends Module {
|
|
53 |
$this->action( 'init', 'init' );
|
54 |
}
|
55 |
|
56 |
-
|
57 |
-
|
|
|
|
|
58 |
}
|
59 |
|
60 |
/**
|
53 |
$this->action( 'init', 'init' );
|
54 |
}
|
55 |
|
56 |
+
if ( Helper::has_cap( '404_monitor' ) ) {
|
57 |
+
$this->action( 'rank_math/dashboard/widget', 'dashboard_widget', 11 );
|
58 |
+
$this->filter( 'rank_math/settings/general', 'add_settings' );
|
59 |
+
}
|
60 |
}
|
61 |
|
62 |
/**
|
@@ -101,7 +101,7 @@ class Table extends List_Table {
|
|
101 |
* @param object $item The current item.
|
102 |
*/
|
103 |
protected function column_uri( $item ) {
|
104 |
-
return $item['uri_decoded'] . $this->column_actions( $item );
|
105 |
}
|
106 |
|
107 |
/**
|
@@ -110,7 +110,7 @@ class Table extends List_Table {
|
|
110 |
* @param object $item The current item.
|
111 |
*/
|
112 |
protected function column_referer( $item ) {
|
113 |
-
return '<a href="' . $item['referer'] . '" target="_blank">' . $item['referer'] . '</a>';
|
114 |
}
|
115 |
|
116 |
/**
|
@@ -121,7 +121,7 @@ class Table extends List_Table {
|
|
121 |
*/
|
122 |
public function column_default( $item, $column_name ) {
|
123 |
if ( in_array( $column_name, [ 'times_accessed', 'accessed', 'user_agent' ], true ) ) {
|
124 |
-
return $item[ $column_name ];
|
125 |
}
|
126 |
|
127 |
return print_r( $item, true );
|
101 |
* @param object $item The current item.
|
102 |
*/
|
103 |
protected function column_uri( $item ) {
|
104 |
+
return esc_html( $item['uri_decoded'] ) . $this->column_actions( $item );
|
105 |
}
|
106 |
|
107 |
/**
|
110 |
* @param object $item The current item.
|
111 |
*/
|
112 |
protected function column_referer( $item ) {
|
113 |
+
return '<a href="' . esc_attr( $item['referer'] ) . '" target="_blank">' . esc_html( $item['referer'] ) . '</a>';
|
114 |
}
|
115 |
|
116 |
/**
|
121 |
*/
|
122 |
public function column_default( $item, $column_name ) {
|
123 |
if ( in_array( $column_name, [ 'times_accessed', 'accessed', 'user_agent' ], true ) ) {
|
124 |
+
return esc_html( $item[ $column_name ] );
|
125 |
}
|
126 |
|
127 |
return print_r( $item, true );
|
@@ -55,8 +55,10 @@ class Admin extends Module {
|
|
55 |
$this->ajax_hooks();
|
56 |
$this->load_metabox();
|
57 |
|
58 |
-
|
59 |
-
|
|
|
|
|
60 |
|
61 |
if ( $this->page->is_current_page() || 'rank_math_save_redirections' === Param::post( 'action' ) ) {
|
62 |
$this->form = new Form;
|
55 |
$this->ajax_hooks();
|
56 |
$this->load_metabox();
|
57 |
|
58 |
+
if ( Helper::has_cap( 'redirections' ) ) {
|
59 |
+
$this->action( 'rank_math/dashboard/widget', 'dashboard_widget', 12 );
|
60 |
+
$this->filter( 'rank_math/settings/general', 'add_settings' );
|
61 |
+
}
|
62 |
|
63 |
if ( $this->page->is_current_page() || 'rank_math_save_redirections' === Param::post( 'action' ) ) {
|
64 |
$this->form = new Form;
|
@@ -140,6 +140,7 @@ class Form {
|
|
140 |
}
|
141 |
|
142 |
if ( $url = Param::get( 'url' ) ) { // phpcs:ignore
|
|
|
143 |
return [ 'sources' => [ [ 'pattern' => $url ] ] ];
|
144 |
}
|
145 |
|
140 |
}
|
141 |
|
142 |
if ( $url = Param::get( 'url' ) ) { // phpcs:ignore
|
143 |
+
$url = esc_attr( $url );
|
144 |
return [ 'sources' => [ [ 'pattern' => $url ] ] ];
|
145 |
}
|
146 |
|
@@ -138,6 +138,8 @@ class Snippet_Shortcode {
|
|
138 |
return;
|
139 |
}
|
140 |
|
|
|
|
|
141 |
if ( ! $value = Helper::get_post_meta( "snippet_{$id}", $post->ID ) ) { // phpcs:ignore
|
142 |
return;
|
143 |
}
|
@@ -151,6 +153,10 @@ class Snippet_Shortcode {
|
|
151 |
return;
|
152 |
}
|
153 |
|
|
|
|
|
|
|
|
|
154 |
echo is_array( $value ) ? implode( ', ', $value ) : esc_html( $value );
|
155 |
?>
|
156 |
</p>
|
138 |
return;
|
139 |
}
|
140 |
|
141 |
+
$id = 'event_startdate_date' === $id ? 'event_startdate' : $id;
|
142 |
+
$id = 'event__enddate' === $id ? 'event_enddate' : $id;
|
143 |
if ( ! $value = Helper::get_post_meta( "snippet_{$id}", $post->ID ) ) { // phpcs:ignore
|
144 |
return;
|
145 |
}
|
153 |
return;
|
154 |
}
|
155 |
|
156 |
+
if ( in_array( $id, [ 'jobposting_startdate', 'jobposting_expirydate', 'event_startdate', 'event_enddate' ] ) ) {
|
157 |
+
echo date( 'Y-m-d H:i', $value );
|
158 |
+
return;
|
159 |
+
}
|
160 |
echo is_array( $value ) ? implode( ', ', $value ) : esc_html( $value );
|
161 |
?>
|
162 |
</p>
|
@@ -75,8 +75,10 @@ class Search_Console extends Module {
|
|
75 |
$this->crawler = new Data_Fetcher;
|
76 |
|
77 |
if ( is_admin() ) {
|
78 |
-
|
79 |
-
|
|
|
|
|
80 |
|
81 |
// AJAX.
|
82 |
$this->ajax( 'search_console_authentication', 'authentication' );
|
75 |
$this->crawler = new Data_Fetcher;
|
76 |
|
77 |
if ( is_admin() ) {
|
78 |
+
if ( Helper::has_cap( 'search_console' ) ) {
|
79 |
+
$this->action( 'rank_math/dashboard/widget', 'dashboard_widget', 10 );
|
80 |
+
$this->filter( 'rank_math/settings/general', 'add_settings' );
|
81 |
+
}
|
82 |
|
83 |
// AJAX.
|
84 |
$this->ajax( 'search_console_authentication', 'authentication' );
|
@@ -23,13 +23,6 @@ defined( 'ABSPATH' ) || exit;
|
|
23 |
*/
|
24 |
class Admin extends Module {
|
25 |
|
26 |
-
/**
|
27 |
-
* Hold product categories.
|
28 |
-
*
|
29 |
-
* @var array
|
30 |
-
*/
|
31 |
-
private $categories;
|
32 |
-
|
33 |
/**
|
34 |
* The Constructor.
|
35 |
*/
|
@@ -49,7 +42,6 @@ class Admin extends Module {
|
|
49 |
// Permalink Manager.
|
50 |
$this->filter( 'rank_math/settings/general', 'add_general_settings' );
|
51 |
$this->filter( 'rank_math/flush_fields', 'flush_fields' );
|
52 |
-
$this->filter( 'rewrite_rules_array', 'add_rewrite_rules', 99 );
|
53 |
}
|
54 |
|
55 |
/**
|
@@ -63,7 +55,7 @@ class Admin extends Module {
|
|
63 |
'woocommerce' => array(
|
64 |
'icon' => 'dashicons dashicons-cart',
|
65 |
'title' => esc_html__( 'WooCommerce', 'rank-math' ),
|
66 |
-
'desc' => esc_html__( '
|
67 |
'file' => $this->directory . '/views/options-general.php',
|
68 |
),
|
69 |
), 7 );
|
@@ -83,87 +75,4 @@ class Admin extends Module {
|
|
83 |
|
84 |
return $fields;
|
85 |
}
|
86 |
-
|
87 |
-
/**
|
88 |
-
* Add rewrite rules for wp.
|
89 |
-
*
|
90 |
-
* @param array $rules The compiled array of rewrite rules.
|
91 |
-
* @return array
|
92 |
-
*/
|
93 |
-
public function add_rewrite_rules( $rules ) {
|
94 |
-
global $wp_rewrite;
|
95 |
-
|
96 |
-
wp_cache_flush();
|
97 |
-
|
98 |
-
$permalink_structure = wc_get_permalink_structure();
|
99 |
-
$remove_product_base = Helper::get_settings( 'general.wc_remove_product_base' );
|
100 |
-
$remove_category_base = Helper::get_settings( 'general.wc_remove_category_base' );
|
101 |
-
$remove_parent_slugs = Helper::get_settings( 'general.wc_remove_category_parent_slugs' );
|
102 |
-
|
103 |
-
$category_base = $remove_category_base ? '' : $permalink_structure['category_rewrite_slug'];
|
104 |
-
$use_parent_slug = Str::contains( '%product_cat%', $permalink_structure['product_rewrite_slug'] );
|
105 |
-
|
106 |
-
$product_rules = [];
|
107 |
-
$category_rules = [];
|
108 |
-
foreach ( $this->get_categories() as $category ) {
|
109 |
-
$category_slug = $remove_parent_slugs ? $category['slug'] : $this->get_category_fullpath( $category );
|
110 |
-
|
111 |
-
$category_rules[ $category_base . $category_slug . '/?$' ] = 'index.php?product_cat=' . $category['slug'];
|
112 |
-
$category_rules[ $category_base . $category_slug . '/(?:feed/)?(feed|rdf|rss|rss2|atom)/?$' ] = 'index.php?product_cat=' . $category['slug'] . '&feed=$matches[1]';
|
113 |
-
$category_rules[ $category_base . $category_slug . '/' . $wp_rewrite->pagination_base . '/?([0-9]{1,})/?$' ] = 'index.php?product_cat=' . $category['slug'] . '&paged=$matches[1]';
|
114 |
-
|
115 |
-
if ( $remove_product_base && $use_parent_slug ) {
|
116 |
-
$product_rules[ $category_slug . '/([^/]+)/?$' ] = 'index.php?product=$matches[1]';
|
117 |
-
$product_rules[ $category_slug . '/([^/]+)/' . $wp_rewrite->comments_pagination_base . '-([0-9]{1,})/?$' ] = 'index.php?product=$matches[1]&cpage=$matches[2]';
|
118 |
-
}
|
119 |
-
}
|
120 |
-
|
121 |
-
$rules = empty( $rules ) ? [] : $rules;
|
122 |
-
return $category_rules + $product_rules + $rules;
|
123 |
-
}
|
124 |
-
|
125 |
-
/**
|
126 |
-
* Returns categories array.
|
127 |
-
*
|
128 |
-
* ['category id' => ['slug' => 'category slug', 'parent' => 'parent category id']]
|
129 |
-
*
|
130 |
-
* @return array
|
131 |
-
*/
|
132 |
-
protected function get_categories() {
|
133 |
-
if ( is_null( $this->categories ) ) {
|
134 |
-
$categories = get_categories(array(
|
135 |
-
'taxonomy' => 'product_cat',
|
136 |
-
'hide_empty' => false,
|
137 |
-
));
|
138 |
-
|
139 |
-
$slugs = [];
|
140 |
-
foreach ( $categories as $category ) {
|
141 |
-
$slugs[ $category->term_id ] = array(
|
142 |
-
'parent' => $category->parent,
|
143 |
-
'slug' => $category->slug,
|
144 |
-
);
|
145 |
-
}
|
146 |
-
|
147 |
-
$this->categories = $slugs;
|
148 |
-
}
|
149 |
-
|
150 |
-
return $this->categories;
|
151 |
-
}
|
152 |
-
|
153 |
-
/**
|
154 |
-
* Recursively builds category full path.
|
155 |
-
*
|
156 |
-
* @param object $category Term object.
|
157 |
-
* @return string
|
158 |
-
*/
|
159 |
-
protected function get_category_fullpath( $category ) {
|
160 |
-
$categories = $this->get_categories();
|
161 |
-
$parent = $category['parent'];
|
162 |
-
|
163 |
-
if ( $parent > 0 && array_key_exists( $parent, $categories ) ) {
|
164 |
-
return $this->get_category_fullpath( $categories[ $parent ] ) . '/' . $category['slug'];
|
165 |
-
}
|
166 |
-
|
167 |
-
return $category['slug'];
|
168 |
-
}
|
169 |
}
|
23 |
*/
|
24 |
class Admin extends Module {
|
25 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
/**
|
27 |
* The Constructor.
|
28 |
*/
|
42 |
// Permalink Manager.
|
43 |
$this->filter( 'rank_math/settings/general', 'add_general_settings' );
|
44 |
$this->filter( 'rank_math/flush_fields', 'flush_fields' );
|
|
|
45 |
}
|
46 |
|
47 |
/**
|
55 |
'woocommerce' => array(
|
56 |
'icon' => 'dashicons dashicons-cart',
|
57 |
'title' => esc_html__( 'WooCommerce', 'rank-math' ),
|
58 |
+
'desc' => esc_html__( 'Choose how you want Rank Math to handle your WooCommerce SEO. These options help you create cleaner, SEO friendly URLs, and optimize your WooCommerce product pages.', 'rank-math' ),
|
59 |
'file' => $this->directory . '/views/options-general.php',
|
60 |
),
|
61 |
), 7 );
|
75 |
|
76 |
return $fields;
|
77 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
}
|
@@ -25,6 +25,13 @@ class WooCommerce {
|
|
25 |
|
26 |
use Hooker;
|
27 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
/**
|
29 |
* The Constructor.
|
30 |
*/
|
@@ -34,41 +41,7 @@ class WooCommerce {
|
|
34 |
new Admin;
|
35 |
}
|
36 |
|
37 |
-
|
38 |
-
if ( ! is_admin() ) {
|
39 |
-
if (
|
40 |
-
Helper::get_settings( 'general.wc_remove_product_base' ) ||
|
41 |
-
Helper::get_settings( 'general.wc_remove_category_base' ) ||
|
42 |
-
Helper::get_settings( 'general.wc_remove_category_parent_slugs' )
|
43 |
-
) {
|
44 |
-
$this->action( 'request', 'request' );
|
45 |
-
}
|
46 |
-
|
47 |
-
if ( Helper::get_settings( 'general.wc_remove_generator' ) ) {
|
48 |
-
remove_action( 'get_the_generator_html', 'wc_generator_tag', 10 );
|
49 |
-
remove_action( 'get_the_generator_xhtml', 'wc_generator_tag', 10 );
|
50 |
-
}
|
51 |
-
|
52 |
-
// Add metadescription filter.
|
53 |
-
$this->filter( 'rank_math/frontend/description', 'metadesc' );
|
54 |
-
|
55 |
-
// Robots.
|
56 |
-
$this->filter( 'rank_math/frontend/robots', 'robots' );
|
57 |
-
|
58 |
-
// OpenGraph.
|
59 |
-
$this->filter( 'language_attributes', 'og_product_namespace', 11 );
|
60 |
-
$this->filter( 'rank_math/opengraph/desc', 'og_desc_product_taxonomy' );
|
61 |
-
$this->action( 'rank_math/opengraph/facebook', 'og_enhancement', 50 );
|
62 |
-
$this->action( 'rank_math/opengraph/facebook/add_additional_images', 'set_opengraph_image' );
|
63 |
-
|
64 |
-
// Sitemap.
|
65 |
-
$this->filter( 'rank_math/sitemap/exclude_post_type', 'sitemap_exclude_post_type', 10, 2 );
|
66 |
-
$this->filter( 'rank_math/sitemap/post_type_archive_link', 'sitemap_taxonomies', 10, 2 );
|
67 |
-
$this->filter( 'rank_math/sitemap/post_type_archive_link', 'sitemap_post_type_archive_link', 10, 2 );
|
68 |
-
$this->filter( 'rank_math/sitemap/urlimages', 'add_product_images_to_xml_sitemap', 10, 2 );
|
69 |
-
|
70 |
-
}
|
71 |
-
|
72 |
if ( Helper::get_settings( 'general.wc_remove_product_base' ) ) {
|
73 |
$this->filter( 'post_type_link', 'product_post_type_link', 1, 2 );
|
74 |
}
|
@@ -76,9 +49,47 @@ class WooCommerce {
|
|
76 |
$this->filter( 'term_link', 'product_term_link', 1, 3 );
|
77 |
}
|
78 |
|
|
|
79 |
$this->action( 'rank_math/vars/register_extra_replacements', 'register_replacements' );
|
80 |
}
|
81 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
/**
|
83 |
* Replace request if product found.
|
84 |
*
|
@@ -197,6 +208,12 @@ class WooCommerce {
|
|
197 |
* @return array Modified robots.
|
198 |
*/
|
199 |
public function robots( $robots ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
200 |
if ( is_cart() || is_checkout() || is_account_page() ) {
|
201 |
remove_action( 'wp_head', 'wc_page_noindex' );
|
202 |
return array(
|
@@ -575,6 +592,88 @@ class WooCommerce {
|
|
575 |
return $product->post->post_excerpt;
|
576 |
}
|
577 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
578 |
/**
|
579 |
* Checks if product class has a description method.
|
580 |
* Otherwise it returns the value of the post_content.
|
25 |
|
26 |
use Hooker;
|
27 |
|
28 |
+
/**
|
29 |
+
* Hold product categories.
|
30 |
+
*
|
31 |
+
* @var array
|
32 |
+
*/
|
33 |
+
private $categories;
|
34 |
+
|
35 |
/**
|
36 |
* The Constructor.
|
37 |
*/
|
41 |
new Admin;
|
42 |
}
|
43 |
|
44 |
+
$this->action( 'wp', 'integrations' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
if ( Helper::get_settings( 'general.wc_remove_product_base' ) ) {
|
46 |
$this->filter( 'post_type_link', 'product_post_type_link', 1, 2 );
|
47 |
}
|
49 |
$this->filter( 'term_link', 'product_term_link', 1, 3 );
|
50 |
}
|
51 |
|
52 |
+
$this->filter( 'rewrite_rules_array', 'add_rewrite_rules', 99 );
|
53 |
$this->action( 'rank_math/vars/register_extra_replacements', 'register_replacements' );
|
54 |
}
|
55 |
|
56 |
+
/**
|
57 |
+
* Initialize integrations.
|
58 |
+
*/
|
59 |
+
public function integrations() {
|
60 |
+
// Permalink Manager.
|
61 |
+
if (
|
62 |
+
Helper::get_settings( 'general.wc_remove_product_base' ) ||
|
63 |
+
Helper::get_settings( 'general.wc_remove_category_base' ) ||
|
64 |
+
Helper::get_settings( 'general.wc_remove_category_parent_slugs' )
|
65 |
+
) {
|
66 |
+
$this->action( 'request', 'request' );
|
67 |
+
}
|
68 |
+
|
69 |
+
if ( Helper::get_settings( 'general.wc_remove_generator' ) ) {
|
70 |
+
remove_action( 'get_the_generator_html', 'wc_generator_tag', 10 );
|
71 |
+
remove_action( 'get_the_generator_xhtml', 'wc_generator_tag', 10 );
|
72 |
+
}
|
73 |
+
|
74 |
+
// Add metadescription filter.
|
75 |
+
$this->filter( 'rank_math/frontend/description', 'metadesc' );
|
76 |
+
|
77 |
+
// Robots.
|
78 |
+
$this->filter( 'rank_math/frontend/robots', 'robots' );
|
79 |
+
|
80 |
+
// OpenGraph.
|
81 |
+
$this->filter( 'language_attributes', 'og_product_namespace', 11 );
|
82 |
+
$this->filter( 'rank_math/opengraph/desc', 'og_desc_product_taxonomy' );
|
83 |
+
$this->action( 'rank_math/opengraph/facebook', 'og_enhancement', 50 );
|
84 |
+
$this->action( 'rank_math/opengraph/facebook/add_additional_images', 'set_opengraph_image' );
|
85 |
+
|
86 |
+
// Sitemap.
|
87 |
+
$this->filter( 'rank_math/sitemap/exclude_post_type', 'sitemap_exclude_post_type', 10, 2 );
|
88 |
+
$this->filter( 'rank_math/sitemap/post_type_archive_link', 'sitemap_taxonomies', 10, 2 );
|
89 |
+
$this->filter( 'rank_math/sitemap/post_type_archive_link', 'sitemap_post_type_archive_link', 10, 2 );
|
90 |
+
$this->filter( 'rank_math/sitemap/urlimages', 'add_product_images_to_xml_sitemap', 10, 2 );
|
91 |
+
}
|
92 |
+
|
93 |
/**
|
94 |
* Replace request if product found.
|
95 |
*
|
208 |
* @return array Modified robots.
|
209 |
*/
|
210 |
public function robots( $robots ) {
|
211 |
+
|
212 |
+
// Early Bail if current page is Woocommerce OnePage Checkout.
|
213 |
+
if ( function_exists( 'is_wcopc_checkout' ) && is_wcopc_checkout() ) {
|
214 |
+
return $robots;
|
215 |
+
}
|
216 |
+
|
217 |
if ( is_cart() || is_checkout() || is_account_page() ) {
|
218 |
remove_action( 'wp_head', 'wc_page_noindex' );
|
219 |
return array(
|
592 |
return $product->post->post_excerpt;
|
593 |
}
|
594 |
|
595 |
+
/**
|
596 |
+
* Add rewrite rules for wp.
|
597 |
+
*
|
598 |
+
* @param array $rules The compiled array of rewrite rules.
|
599 |
+
* @return array
|
600 |
+
*/
|
601 |
+
public function add_rewrite_rules( $rules ) {
|
602 |
+
global $wp_rewrite;
|
603 |
+
wp_cache_flush();
|
604 |
+
|
605 |
+
$permalink_structure = wc_get_permalink_structure();
|
606 |
+
$remove_product_base = Helper::get_settings( 'general.wc_remove_product_base' );
|
607 |
+
$remove_category_base = Helper::get_settings( 'general.wc_remove_category_base' );
|
608 |
+
$remove_parent_slugs = Helper::get_settings( 'general.wc_remove_category_parent_slugs' );
|
609 |
+
|
610 |
+
$category_base = $remove_category_base ? '' : $permalink_structure['category_rewrite_slug'];
|
611 |
+
$use_parent_slug = Str::contains( '%product_cat%', $permalink_structure['product_rewrite_slug'] );
|
612 |
+
|
613 |
+
$product_rules = [];
|
614 |
+
$category_rules = [];
|
615 |
+
foreach ( $this->get_categories() as $category ) {
|
616 |
+
$category_slug = $remove_parent_slugs ? $category['slug'] : $this->get_category_fullpath( $category );
|
617 |
+
|
618 |
+
$category_rules[ $category_base . $category_slug . '/?$' ] = 'index.php?product_cat=' . $category['slug'];
|
619 |
+
$category_rules[ $category_base . $category_slug . '/(?:feed/)?(feed|rdf|rss|rss2|atom)/?$' ] = 'index.php?product_cat=' . $category['slug'] . '&feed=$matches[1]';
|
620 |
+
$category_rules[ $category_base . $category_slug . '/' . $wp_rewrite->pagination_base . '/?([0-9]{1,})/?$' ] = 'index.php?product_cat=' . $category['slug'] . '&paged=$matches[1]';
|
621 |
+
|
622 |
+
if ( $remove_product_base && $use_parent_slug ) {
|
623 |
+
$product_rules[ $category_slug . '/([^/]+)/?$' ] = 'index.php?product=$matches[1]';
|
624 |
+
$product_rules[ $category_slug . '/([^/]+)/' . $wp_rewrite->comments_pagination_base . '-([0-9]{1,})/?$' ] = 'index.php?product=$matches[1]&cpage=$matches[2]';
|
625 |
+
}
|
626 |
+
}
|
627 |
+
|
628 |
+
$rules = empty( $rules ) ? [] : $rules;
|
629 |
+
return $category_rules + $product_rules + $rules;
|
630 |
+
}
|
631 |
+
|
632 |
+
/**
|
633 |
+
* Returns categories array.
|
634 |
+
*
|
635 |
+
* ['category id' => ['slug' => 'category slug', 'parent' => 'parent category id']]
|
636 |
+
*
|
637 |
+
* @return array
|
638 |
+
*/
|
639 |
+
protected function get_categories() {
|
640 |
+
if ( is_null( $this->categories ) ) {
|
641 |
+
$categories = get_categories(array(
|
642 |
+
'taxonomy' => 'product_cat',
|
643 |
+
'hide_empty' => false,
|
644 |
+
));
|
645 |
+
|
646 |
+
$slugs = [];
|
647 |
+
foreach ( $categories as $category ) {
|
648 |
+
$slugs[ $category->term_id ] = array(
|
649 |
+
'parent' => $category->parent,
|
650 |
+
'slug' => $category->slug,
|
651 |
+
);
|
652 |
+
}
|
653 |
+
|
654 |
+
$this->categories = $slugs;
|
655 |
+
}
|
656 |
+
|
657 |
+
return $this->categories;
|
658 |
+
}
|
659 |
+
|
660 |
+
/**
|
661 |
+
* Recursively builds category full path.
|
662 |
+
*
|
663 |
+
* @param object $category Term object.
|
664 |
+
* @return string
|
665 |
+
*/
|
666 |
+
protected function get_category_fullpath( $category ) {
|
667 |
+
$categories = $this->get_categories();
|
668 |
+
$parent = $category['parent'];
|
669 |
+
|
670 |
+
if ( $parent > 0 && array_key_exists( $parent, $categories ) ) {
|
671 |
+
return $this->get_category_fullpath( $categories[ $parent ] ) . '/' . $category['slug'];
|
672 |
+
}
|
673 |
+
|
674 |
+
return $category['slug'];
|
675 |
+
}
|
676 |
+
|
677 |
/**
|
678 |
* Checks if product class has a description method.
|
679 |
* Otherwise it returns the value of the post_content.
|
@@ -62,7 +62,7 @@ $cmb->add_field([
|
|
62 |
'<code><?php rank_math_the_seo_score(); ?></code>'
|
63 |
),
|
64 |
'classes' => 'nob',
|
65 |
-
'default' => '
|
66 |
'options' => [
|
67 |
'bottom' => esc_html__( 'Below Content', 'rank-math' ),
|
68 |
'top' => esc_html__( 'Above Content', 'rank-math' ),
|
62 |
'<code><?php rank_math_the_seo_score(); ?></code>'
|
63 |
),
|
64 |
'classes' => 'nob',
|
65 |
+
'default' => 'top',
|
66 |
'options' => [
|
67 |
'bottom' => esc_html__( 'Below Content', 'rank-math' ),
|
68 |
'top' => esc_html__( 'Above Content', 'rank-math' ),
|
@@ -14,7 +14,7 @@ $cmb->add_field([
|
|
14 |
'id' => 'disable_date_archives',
|
15 |
'type' => 'switch',
|
16 |
'name' => esc_html__( 'Date Archives', 'rank-math' ),
|
17 |
-
'desc' => esc_html__( '
|
18 |
'options' => [
|
19 |
'off' => esc_html__( 'Enabled', 'rank-math' ),
|
20 |
'on' => esc_html__( 'Disabled', 'rank-math' ),
|
14 |
'id' => 'disable_date_archives',
|
15 |
'type' => 'switch',
|
16 |
'name' => esc_html__( 'Date Archives', 'rank-math' ),
|
17 |
+
'desc' => esc_html__( 'Enable or disable the date archive (_e.g: domain.com/2019/06/_). If this option is disabled, the date archives will be redirected to the homepage.', 'rank-math' ),
|
18 |
'options' => [
|
19 |
'off' => esc_html__( 'Enabled', 'rank-math' ),
|
20 |
'on' => esc_html__( 'Disabled', 'rank-math' ),
|
@@ -38,7 +38,7 @@ $cmb->add_field([
|
|
38 |
'desc' => sprintf( esc_html__( 'Default title tag for single %s pages. This can be changed on a per-post basis on the post editor screen.', 'rank-math' ), $name ),
|
39 |
'classes' => 'rank-math-supports-variables rank-math-title',
|
40 |
'default' => '%title% %page% %sep% %sitename%',
|
41 |
-
'sanitization_cb' =>
|
42 |
]);
|
43 |
|
44 |
$cmb->add_field([
|
38 |
'desc' => sprintf( esc_html__( 'Default title tag for single %s pages. This can be changed on a per-post basis on the post editor screen.', 'rank-math' ), $name ),
|
39 |
'classes' => 'rank-math-supports-variables rank-math-title',
|
40 |
'default' => '%title% %page% %sep% %sitename%',
|
41 |
+
'sanitization_cb' => [ '\RankMath\CMB2', 'sanitize_textfield' ],
|
42 |
]);
|
43 |
|
44 |
$cmb->add_field([
|
@@ -34,7 +34,7 @@ $cmb->add_field([
|
|
34 |
'desc' => sprintf( esc_html__( 'Title tag for %s archives', 'rank-math' ), $name ),
|
35 |
'classes' => 'rank-math-supports-variables rank-math-title',
|
36 |
'default' => '%term% Archives %page% %sep% %sitename%',
|
37 |
-
'sanitization_cb' =>
|
38 |
]);
|
39 |
|
40 |
$cmb->add_field([
|
@@ -46,9 +46,9 @@ $cmb->add_field([
|
|
46 |
'desc' => sprintf( esc_html__( 'Description for %s archives', 'rank-math' ), $name ),
|
47 |
'classes' => 'rank-math-supports-variables rank-math-description',
|
48 |
'attributes' => [
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
'sanitization_cb' => true,
|
53 |
]);
|
54 |
|
34 |
'desc' => sprintf( esc_html__( 'Title tag for %s archives', 'rank-math' ), $name ),
|
35 |
'classes' => 'rank-math-supports-variables rank-math-title',
|
36 |
'default' => '%term% Archives %page% %sep% %sitename%',
|
37 |
+
'sanitization_cb' => [ '\RankMath\CMB2', 'sanitize_textfield' ],
|
38 |
]);
|
39 |
|
40 |
$cmb->add_field([
|
46 |
'desc' => sprintf( esc_html__( 'Description for %s archives', 'rank-math' ), $name ),
|
47 |
'classes' => 'rank-math-supports-variables rank-math-description',
|
48 |
'attributes' => [
|
49 |
+
'class' => 'cmb2-textarea-small wp-exclude-emoji',
|
50 |
+
'data-gramm_editor' => 'false',
|
51 |
+
],
|
52 |
'sanitization_cb' => true,
|
53 |
]);
|
54 |
|
@@ -57,19 +57,17 @@ function rank_math_the_seo_score( $args = [] ) {
|
|
57 |
}
|
58 |
|
59 |
/**
|
60 |
-
* Register
|
61 |
-
*
|
62 |
*
|
63 |
* @codeCoverageIgnore
|
64 |
*
|
65 |
-
* @param string $var
|
66 |
-
*
|
67 |
-
* @param
|
68 |
-
* and should *return* the replacement value. DON'T echo it.
|
69 |
-
* @param array $args Array with title, desc and example values.
|
70 |
*
|
71 |
* @return bool Whether the replacement function was succesfully registered.
|
72 |
*/
|
73 |
function rank_math_register_var_replacement( $var, $callback, $args = [] ) {
|
74 |
-
|
75 |
-
}
|
57 |
}
|
58 |
|
59 |
/**
|
60 |
+
* Register extra %variables%. For developers.
|
61 |
+
* See rank_math_register_var_replacement().
|
62 |
*
|
63 |
* @codeCoverageIgnore
|
64 |
*
|
65 |
+
* @param string $var Variable name, for example %custom%. '%' signs are optional.
|
66 |
+
* @param mixed $callback Replacement callback. Should return value, not output it.
|
67 |
+
* @param array $args Array with additional title, description and example values for the variable.
|
|
|
|
|
68 |
*
|
69 |
* @return bool Whether the replacement function was succesfully registered.
|
70 |
*/
|
71 |
function rank_math_register_var_replacement( $var, $callback, $args = [] ) {
|
72 |
+
return RankMath\Replace_Vars::register_replacement( $var, $callback, $args );
|
73 |
+
}
|
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The Updates routine for version 1.0.27.
|
4 |
+
*
|
5 |
+
* @since 1.0.27
|
6 |
+
* @package RankMath
|
7 |
+
* @subpackage RankMath\Updates
|
8 |
+
* @author Rank Math <support@rankmath.com>
|
9 |
+
*/
|
10 |
+
|
11 |
+
/**
|
12 |
+
* // Clear SEO Analysis result.
|
13 |
+
*/
|
14 |
+
function rank_math_1_0_27_rseset_options() {
|
15 |
+
delete_option( 'rank_math_seo_analysis_results' );
|
16 |
+
}
|
17 |
+
rank_math_1_0_27_rseset_options();
|
@@ -9,7 +9,7 @@
|
|
9 |
*
|
10 |
* @wordpress-plugin
|
11 |
* Plugin Name: Rank Math SEO
|
12 |
-
* Version: 1.0.
|
13 |
* Plugin URI: https://s.rankmath.com/home
|
14 |
* Description: Rank Math is a revolutionary SEO product that combines the features of many SEO tools and lets you multiply your traffic in the easiest way possible.
|
15 |
* Author: Rank Math
|
@@ -25,16 +25,16 @@ defined( 'ABSPATH' ) || exit;
|
|
25 |
/**
|
26 |
* RankMath class.
|
27 |
*
|
28 |
-
* @class
|
29 |
*/
|
30 |
final class RankMath {
|
31 |
|
32 |
/**
|
33 |
-
* Plugin version
|
34 |
*
|
35 |
* @var string
|
36 |
*/
|
37 |
-
public $version = '1.0.
|
38 |
|
39 |
/**
|
40 |
* Rank Math database version.
|
@@ -44,42 +44,42 @@ final class RankMath {
|
|
44 |
public $db_version = '1';
|
45 |
|
46 |
/**
|
47 |
-
* Minimum version of WordPress required to run
|
48 |
*
|
49 |
* @var string
|
50 |
*/
|
51 |
private $wordpress_version = '4.6';
|
52 |
|
53 |
/**
|
54 |
-
* Minimum version of PHP required to run
|
55 |
*
|
56 |
* @var string
|
57 |
*/
|
58 |
private $php_version = '5.6';
|
59 |
|
60 |
/**
|
61 |
-
* Holds various class instances
|
62 |
*
|
63 |
* @var array
|
64 |
*/
|
65 |
private $container = [];
|
66 |
|
67 |
/**
|
68 |
-
* Hold messages
|
69 |
*
|
70 |
* @var bool
|
71 |
*/
|
72 |
private $messages = [];
|
73 |
|
74 |
/**
|
75 |
-
* The single instance of the class
|
76 |
*
|
77 |
* @var RankMath
|
78 |
*/
|
79 |
protected static $instance = null;
|
80 |
|
81 |
/**
|
82 |
-
* Magic isset to bypass referencing plugin
|
83 |
*
|
84 |
* @param string $prop Property to check.
|
85 |
* @return bool
|
@@ -89,7 +89,7 @@ final class RankMath {
|
|
89 |
}
|
90 |
|
91 |
/**
|
92 |
-
* Magic
|
93 |
*
|
94 |
* @param string $prop Property to get.
|
95 |
* @return mixed Property value or NULL if it does not exists
|
@@ -103,7 +103,7 @@ final class RankMath {
|
|
103 |
}
|
104 |
|
105 |
/**
|
106 |
-
* Magic
|
107 |
*
|
108 |
* @param mixed $prop Property to set.
|
109 |
* @param mixed $value Value to set.
|
@@ -141,7 +141,13 @@ final class RankMath {
|
|
141 |
}
|
142 |
|
143 |
/**
|
144 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
145 |
*
|
146 |
* Ensure only one instance is loaded or can be loaded.
|
147 |
*
|
@@ -158,23 +164,23 @@ final class RankMath {
|
|
158 |
}
|
159 |
|
160 |
/**
|
161 |
-
* Instantiate the plugin
|
162 |
*/
|
163 |
private function setup() {
|
164 |
if ( ! $this->is_requirements_meet() ) {
|
165 |
return;
|
166 |
}
|
167 |
|
168 |
-
// Define constants.
|
169 |
$this->define_constants();
|
170 |
|
171 |
// Include required files.
|
172 |
$this->includes();
|
173 |
|
174 |
-
//
|
175 |
$this->instantiate();
|
176 |
|
177 |
-
// Initialize the action hooks.
|
178 |
$this->init_actions();
|
179 |
|
180 |
// Loaded action.
|
@@ -182,19 +188,19 @@ final class RankMath {
|
|
182 |
}
|
183 |
|
184 |
/**
|
185 |
-
* Check that the WordPress and PHP setup meets the plugin requirements
|
186 |
*
|
187 |
* @return bool
|
188 |
*/
|
189 |
private function is_requirements_meet() {
|
190 |
|
191 |
-
// Check
|
192 |
if ( version_compare( get_bloginfo( 'version' ), $this->wordpress_version, '<' ) ) {
|
193 |
/* translators: WordPress Version */
|
194 |
$this->messages[] = sprintf( esc_html__( 'Rank Math requires WordPress version %s or above. Please update WordPress to run this plugin.', 'rank-math' ), $this->wordpress_version );
|
195 |
}
|
196 |
|
197 |
-
// Check
|
198 |
if ( version_compare( phpversion(), $this->php_version, '<' ) ) {
|
199 |
/* translators: PHP Version */
|
200 |
$this->messages[] = sprintf( esc_html__( 'Rank Math requires PHP version %s or above. Please update PHP to run this plugin.', 'rank-math' ), $this->php_version );
|
@@ -212,7 +218,7 @@ final class RankMath {
|
|
212 |
}
|
213 |
|
214 |
/**
|
215 |
-
* Auto-deactivate plugin if
|
216 |
*/
|
217 |
public function auto_deactivate() {
|
218 |
deactivate_plugins( plugin_basename( RANK_MATH_FILE ) );
|
@@ -222,7 +228,7 @@ final class RankMath {
|
|
222 |
}
|
223 |
|
224 |
/**
|
225 |
-
*
|
226 |
*/
|
227 |
public function activation_error() {
|
228 |
?>
|
@@ -235,7 +241,7 @@ final class RankMath {
|
|
235 |
}
|
236 |
|
237 |
/**
|
238 |
-
* Define the plugin constants
|
239 |
*/
|
240 |
private function define_constants() {
|
241 |
define( 'RANK_MATH_VERSION', $this->version );
|
@@ -245,12 +251,13 @@ final class RankMath {
|
|
245 |
}
|
246 |
|
247 |
/**
|
248 |
-
* Include the required files
|
249 |
*/
|
250 |
private function includes() {
|
251 |
include dirname( __FILE__ ) . '/vendor/autoload.php';
|
252 |
|
253 |
-
// For Theme Developers
|
|
|
254 |
$file = get_stylesheet_directory() . '/rank-math.php';
|
255 |
if ( file_exists( $file ) ) {
|
256 |
require_once $file;
|
@@ -258,7 +265,7 @@ final class RankMath {
|
|
258 |
}
|
259 |
|
260 |
/**
|
261 |
-
* Instantiate classes
|
262 |
*/
|
263 |
private function instantiate() {
|
264 |
new \RankMath\Rollbar;
|
@@ -281,12 +288,12 @@ final class RankMath {
|
|
281 |
|
282 |
$this->container['manager'] = new \RankMath\Module_Manager;
|
283 |
|
284 |
-
// Just
|
285 |
new \RankMath\Common;
|
286 |
$this->container['rewrite'] = new \RankMath\Rewrite;
|
287 |
new \RankMath\Compatibility;
|
288 |
|
289 |
-
// Usage Tracking.
|
290 |
if ( defined( 'DOING_CRON' ) && ! defined( 'DOING_AJAX' ) && \RankMath\Helper::get_settings( 'general.usage_tracking' ) ) {
|
291 |
new \RankMath\Tracking;
|
292 |
}
|
@@ -296,7 +303,7 @@ final class RankMath {
|
|
296 |
}
|
297 |
|
298 |
/**
|
299 |
-
* Initialize WordPress action hooks
|
300 |
*/
|
301 |
private function init_actions() {
|
302 |
|
@@ -311,11 +318,12 @@ final class RankMath {
|
|
311 |
add_action( 'plugins_loaded', [ $this, 'init' ], 14 );
|
312 |
add_action( 'rest_api_init', [ $this, 'init_rest_api' ] );
|
313 |
|
|
|
314 |
if ( is_admin() ) {
|
315 |
add_action( 'plugins_loaded', [ $this, 'init_admin' ], 15 );
|
316 |
}
|
317 |
|
318 |
-
// Frontend
|
319 |
if ( ! is_admin() || in_array( \MyThemeShop\Helpers\Param::request( 'action' ), [ 'elementor', 'elementor_ajax' ], true ) ) {
|
320 |
add_action( 'plugins_loaded', [ $this, 'init_frontend' ], 15 );
|
321 |
}
|
@@ -327,19 +335,9 @@ final class RankMath {
|
|
327 |
}
|
328 |
|
329 |
/**
|
330 |
-
*
|
331 |
-
*/
|
332 |
-
public function init() {
|
333 |
-
}
|
334 |
-
|
335 |
-
/**
|
336 |
-
* Loads the rest api endpoints.
|
337 |
*/
|
338 |
public function init_rest_api() {
|
339 |
-
// We can't do anything when requirements are not met.
|
340 |
-
if ( ! \RankMath\Helper::is_api_available() ) {
|
341 |
-
return;
|
342 |
-
}
|
343 |
|
344 |
$controllers = [
|
345 |
new \RankMath\Rest\Admin,
|
@@ -352,21 +350,23 @@ final class RankMath {
|
|
352 |
}
|
353 |
|
354 |
/**
|
355 |
-
* Initialize the admin.
|
|
|
356 |
*/
|
357 |
public function init_admin() {
|
358 |
new \RankMath\Admin\Engine;
|
359 |
}
|
360 |
|
361 |
/**
|
362 |
-
* Initialize the frontend.
|
|
|
363 |
*/
|
364 |
public function init_frontend() {
|
365 |
$this->container['frontend'] = new \RankMath\Frontend\Frontend;
|
366 |
}
|
367 |
|
368 |
/**
|
369 |
-
*
|
370 |
*/
|
371 |
public function init_wp_cli() {
|
372 |
WP_CLI::add_command( 'rankmath sitemap generate', [ '\RankMath\CLI\Commands', 'sitemap_generate' ] );
|
@@ -389,7 +389,7 @@ final class RankMath {
|
|
389 |
}
|
390 |
|
391 |
/**
|
392 |
-
*
|
393 |
*
|
394 |
* @param mixed $links Plugin Row Meta.
|
395 |
* @param mixed $file Plugin Base file.
|
@@ -437,9 +437,9 @@ final class RankMath {
|
|
437 |
}
|
438 |
|
439 |
/**
|
440 |
-
* Add
|
441 |
*
|
442 |
-
* @param array $schedules List of
|
443 |
* @return array
|
444 |
*/
|
445 |
public function cron_schedules( $schedules ) {
|
@@ -454,8 +454,6 @@ final class RankMath {
|
|
454 |
}
|
455 |
|
456 |
/**
|
457 |
-
* Main instance of RankMath.
|
458 |
-
*
|
459 |
* Returns the main instance of RankMath to prevent the need to use globals.
|
460 |
*
|
461 |
* @return RankMath
|
@@ -464,5 +462,5 @@ function rank_math() {
|
|
464 |
return RankMath::get();
|
465 |
}
|
466 |
|
467 |
-
//
|
468 |
rank_math();
|
9 |
*
|
10 |
* @wordpress-plugin
|
11 |
* Plugin Name: Rank Math SEO
|
12 |
+
* Version: 1.0.27
|
13 |
* Plugin URI: https://s.rankmath.com/home
|
14 |
* Description: Rank Math is a revolutionary SEO product that combines the features of many SEO tools and lets you multiply your traffic in the easiest way possible.
|
15 |
* Author: Rank Math
|
25 |
/**
|
26 |
* RankMath class.
|
27 |
*
|
28 |
+
* @class Main class of the plugin.
|
29 |
*/
|
30 |
final class RankMath {
|
31 |
|
32 |
/**
|
33 |
+
* Plugin version.
|
34 |
*
|
35 |
* @var string
|
36 |
*/
|
37 |
+
public $version = '1.0.27';
|
38 |
|
39 |
/**
|
40 |
* Rank Math database version.
|
44 |
public $db_version = '1';
|
45 |
|
46 |
/**
|
47 |
+
* Minimum version of WordPress required to run Rank Math.
|
48 |
*
|
49 |
* @var string
|
50 |
*/
|
51 |
private $wordpress_version = '4.6';
|
52 |
|
53 |
/**
|
54 |
+
* Minimum version of PHP required to run Rank Math.
|
55 |
*
|
56 |
* @var string
|
57 |
*/
|
58 |
private $php_version = '5.6';
|
59 |
|
60 |
/**
|
61 |
+
* Holds various class instances.
|
62 |
*
|
63 |
* @var array
|
64 |
*/
|
65 |
private $container = [];
|
66 |
|
67 |
/**
|
68 |
+
* Hold install error messages.
|
69 |
*
|
70 |
* @var bool
|
71 |
*/
|
72 |
private $messages = [];
|
73 |
|
74 |
/**
|
75 |
+
* The single instance of the class.
|
76 |
*
|
77 |
* @var RankMath
|
78 |
*/
|
79 |
protected static $instance = null;
|
80 |
|
81 |
/**
|
82 |
+
* Magic isset to bypass referencing plugin.
|
83 |
*
|
84 |
* @param string $prop Property to check.
|
85 |
* @return bool
|
89 |
}
|
90 |
|
91 |
/**
|
92 |
+
* Magic getter method.
|
93 |
*
|
94 |
* @param string $prop Property to get.
|
95 |
* @return mixed Property value or NULL if it does not exists
|
103 |
}
|
104 |
|
105 |
/**
|
106 |
+
* Magic setter method.
|
107 |
*
|
108 |
* @param mixed $prop Property to set.
|
109 |
* @param mixed $value Value to set.
|
141 |
}
|
142 |
|
143 |
/**
|
144 |
+
* Initialize.
|
145 |
+
*/
|
146 |
+
public function init() {
|
147 |
+
}
|
148 |
+
|
149 |
+
/**
|
150 |
+
* Retrieve main RankMath instance.
|
151 |
*
|
152 |
* Ensure only one instance is loaded or can be loaded.
|
153 |
*
|
164 |
}
|
165 |
|
166 |
/**
|
167 |
+
* Instantiate the plugin.
|
168 |
*/
|
169 |
private function setup() {
|
170 |
if ( ! $this->is_requirements_meet() ) {
|
171 |
return;
|
172 |
}
|
173 |
|
174 |
+
// Define plugin constants.
|
175 |
$this->define_constants();
|
176 |
|
177 |
// Include required files.
|
178 |
$this->includes();
|
179 |
|
180 |
+
// Instantiate classes.
|
181 |
$this->instantiate();
|
182 |
|
183 |
+
// Initialize the action and filter hooks.
|
184 |
$this->init_actions();
|
185 |
|
186 |
// Loaded action.
|
188 |
}
|
189 |
|
190 |
/**
|
191 |
+
* Check that the WordPress and PHP setup meets the plugin requirements.
|
192 |
*
|
193 |
* @return bool
|
194 |
*/
|
195 |
private function is_requirements_meet() {
|
196 |
|
197 |
+
// Check WordPress version.
|
198 |
if ( version_compare( get_bloginfo( 'version' ), $this->wordpress_version, '<' ) ) {
|
199 |
/* translators: WordPress Version */
|
200 |
$this->messages[] = sprintf( esc_html__( 'Rank Math requires WordPress version %s or above. Please update WordPress to run this plugin.', 'rank-math' ), $this->wordpress_version );
|
201 |
}
|
202 |
|
203 |
+
// Check PHP version.
|
204 |
if ( version_compare( phpversion(), $this->php_version, '<' ) ) {
|
205 |
/* translators: PHP Version */
|
206 |
$this->messages[] = sprintf( esc_html__( 'Rank Math requires PHP version %s or above. Please update PHP to run this plugin.', 'rank-math' ), $this->php_version );
|
218 |
}
|
219 |
|
220 |
/**
|
221 |
+
* Auto-deactivate plugin if requirements are not met, and display a notice.
|
222 |
*/
|
223 |
public function auto_deactivate() {
|
224 |
deactivate_plugins( plugin_basename( RANK_MATH_FILE ) );
|
228 |
}
|
229 |
|
230 |
/**
|
231 |
+
* Error notice on plugin activation.
|
232 |
*/
|
233 |
public function activation_error() {
|
234 |
?>
|
241 |
}
|
242 |
|
243 |
/**
|
244 |
+
* Define the plugin constants.
|
245 |
*/
|
246 |
private function define_constants() {
|
247 |
define( 'RANK_MATH_VERSION', $this->version );
|
251 |
}
|
252 |
|
253 |
/**
|
254 |
+
* Include the required files.
|
255 |
*/
|
256 |
private function includes() {
|
257 |
include dirname( __FILE__ ) . '/vendor/autoload.php';
|
258 |
|
259 |
+
// For Theme Developers:
|
260 |
+
// theme-folder/rankmath.php will be loaded automatically.
|
261 |
$file = get_stylesheet_directory() . '/rank-math.php';
|
262 |
if ( file_exists( $file ) ) {
|
263 |
require_once $file;
|
265 |
}
|
266 |
|
267 |
/**
|
268 |
+
* Instantiate classes.
|
269 |
*/
|
270 |
private function instantiate() {
|
271 |
new \RankMath\Rollbar;
|
288 |
|
289 |
$this->container['manager'] = new \RankMath\Module_Manager;
|
290 |
|
291 |
+
// Just init without storing it in the container.
|
292 |
new \RankMath\Common;
|
293 |
$this->container['rewrite'] = new \RankMath\Rewrite;
|
294 |
new \RankMath\Compatibility;
|
295 |
|
296 |
+
// Usage Tracking, if it's enabled and this is a CRON request.
|
297 |
if ( defined( 'DOING_CRON' ) && ! defined( 'DOING_AJAX' ) && \RankMath\Helper::get_settings( 'general.usage_tracking' ) ) {
|
298 |
new \RankMath\Tracking;
|
299 |
}
|
303 |
}
|
304 |
|
305 |
/**
|
306 |
+
* Initialize WordPress action and filter hooks.
|
307 |
*/
|
308 |
private function init_actions() {
|
309 |
|
318 |
add_action( 'plugins_loaded', [ $this, 'init' ], 14 );
|
319 |
add_action( 'rest_api_init', [ $this, 'init_rest_api' ] );
|
320 |
|
321 |
+
// Load admin-related functionality.
|
322 |
if ( is_admin() ) {
|
323 |
add_action( 'plugins_loaded', [ $this, 'init_admin' ], 15 );
|
324 |
}
|
325 |
|
326 |
+
// Frontend-only functionality.
|
327 |
if ( ! is_admin() || in_array( \MyThemeShop\Helpers\Param::request( 'action' ), [ 'elementor', 'elementor_ajax' ], true ) ) {
|
328 |
add_action( 'plugins_loaded', [ $this, 'init_frontend' ], 15 );
|
329 |
}
|
335 |
}
|
336 |
|
337 |
/**
|
338 |
+
* Load the REST API endpoints.
|
|
|
|
|
|
|
|
|
|
|
|
|
339 |
*/
|
340 |
public function init_rest_api() {
|
|
|
|
|
|
|
|
|
341 |
|
342 |
$controllers = [
|
343 |
new \RankMath\Rest\Admin,
|
350 |
}
|
351 |
|
352 |
/**
|
353 |
+
* Initialize the admin-related functionality.
|
354 |
+
* Runs on 'plugins_loaded'.
|
355 |
*/
|
356 |
public function init_admin() {
|
357 |
new \RankMath\Admin\Engine;
|
358 |
}
|
359 |
|
360 |
/**
|
361 |
+
* Initialize the frontend functionality.
|
362 |
+
* Runs on 'plugins_loaded'.
|
363 |
*/
|
364 |
public function init_frontend() {
|
365 |
$this->container['frontend'] = new \RankMath\Frontend\Frontend;
|
366 |
}
|
367 |
|
368 |
/**
|
369 |
+
* Add our custom WP-CLI commands.
|
370 |
*/
|
371 |
public function init_wp_cli() {
|
372 |
WP_CLI::add_command( 'rankmath sitemap generate', [ '\RankMath\CLI\Commands', 'sitemap_generate' ] );
|
389 |
}
|
390 |
|
391 |
/**
|
392 |
+
* Add extra links as row meta on the plugin screen.
|
393 |
*
|
394 |
* @param mixed $links Plugin Row Meta.
|
395 |
* @param mixed $file Plugin Base file.
|
437 |
}
|
438 |
|
439 |
/**
|
440 |
+
* Add cron schedules.
|
441 |
*
|
442 |
+
* @param array $schedules List of schedules for cron jobs.
|
443 |
* @return array
|
444 |
*/
|
445 |
public function cron_schedules( $schedules ) {
|
454 |
}
|
455 |
|
456 |
/**
|
|
|
|
|
457 |
* Returns the main instance of RankMath to prevent the need to use globals.
|
458 |
*
|
459 |
* @return RankMath
|
462 |
return RankMath::get();
|
463 |
}
|
464 |
|
465 |
+
// Start it.
|
466 |
rank_math();
|
@@ -5,7 +5,7 @@ Tags: seo, sitemap, google search console, schema, redirection
|
|
5 |
Tested up to: 5.2.1
|
6 |
Requires at least: 4.6.0
|
7 |
Requires PHP: 5.6
|
8 |
-
Stable tag: 1.0.
|
9 |
License: GPL-2.0+
|
10 |
License URI: https://www.gnu.org/licenses/gpl-2.0.txt
|
11 |
|
@@ -451,18 +451,21 @@ We look forward to helping you.
|
|
451 |
|
452 |
== Changelog ==
|
453 |
|
454 |
-
= 1.0.
|
455 |
-
* Added
|
456 |
-
*
|
457 |
-
*
|
458 |
-
*
|
459 |
-
* Improved the
|
460 |
-
* Fixed
|
461 |
-
* Fixed
|
462 |
-
* Fixed
|
463 |
-
* Fixed
|
464 |
-
* Fixed
|
465 |
-
* Fixed an issue
|
466 |
-
* Fixed a
|
|
|
|
|
|
|
467 |
|
468 |
Full changelog can be found here - **[Rank Math SEO changelog](https://rankmath.com/changelog)**
|
5 |
Tested up to: 5.2.1
|
6 |
Requires at least: 4.6.0
|
7 |
Requires PHP: 5.6
|
8 |
+
Stable tag: 1.0.27
|
9 |
License: GPL-2.0+
|
10 |
License URI: https://www.gnu.org/licenses/gpl-2.0.txt
|
11 |
|
451 |
|
452 |
== Changelog ==
|
453 |
|
454 |
+
= 1.0.27 [Jun 18, 2019] =
|
455 |
+
* Added a filter to [show Meta Keywords tag](https://s.rankmath.com/keywordmetatag) to the Search Engines like Yandex
|
456 |
+
* Added some important security fixes
|
457 |
+
* Added more improvements to how the SEO Analyzer works inside the plugin
|
458 |
+
* Enhanced the output of the Rich Snippet's Shortcode showing the formatted date
|
459 |
+
* Improved the comments to make them more meaningful
|
460 |
+
* Fixed an issue with the Breadcrumbs not showing the primary category on the product pages
|
461 |
+
* Fixed a compatibility issue with the Indexing API plugin and Rank Math
|
462 |
+
* Fixed an issue where product categories were showing 404 when Remove Category Base option was enabled
|
463 |
+
* Fixed the problem with the categories date variables not working correctly in the settings fields
|
464 |
+
* Fixed a conflict with Woocommerce One Page checkout plugin
|
465 |
+
* Fixed an issue where the feeds were not updating when the WooCommerce module was activated
|
466 |
+
* Fixed a compatibility issue with the Ultra theme, not showing the text editor
|
467 |
+
* Fixed an issue where the Search Console Box was appearing for all the users in the dashboard
|
468 |
+
* Fixed a problem in the SEO Analysis where missing 'Focus Keyword in Title' test wasn't working as intended
|
469 |
+
* Prepared the plugin for upcoming updates related to Gutenberg's compatibility
|
470 |
|
471 |
Full changelog can be found here - **[Rank Math SEO changelog](https://rankmath.com/changelog)**
|