<div class="rss-widget"><ul><li><a class='rsswidget' href='https://wordpress.org/news/2019/08/people-of-wordpress-amanda-rush/' title='You’ve probably heard that WordPress is open source software, and may know that it’s created and run by volunteers. WordPress enthusiasts share many examples of how WordPress changed people’s lives for the better. This monthly series shares some of those lesser-known, amazing stories.    Meet Amanda Rush from Augusta, Georgia, USA.    Amanda Rush is a WordPress advocate with a visual disability. She first started using computers in 1985, which enabled her to turn in homework to her sighted teachers. Screen reader technology for Windows was in its infancy then, so she worked in DOS almost exclusively.    After graduating high school, Amanda went to college to study computer science, programming with DOS-based tools since compilers for Windows were still inaccessible. As part of her computer science course of study, she learned HTML which began her career in web development.    How Amanda got started with WordPress    Amanda began maintaining a personal website, and eventually began publishing her own content using LiveJournal. However, controlling the way the page around her content looked was hard, and she soon outgrew the hosted solution.    So in 2005, Amanda bought customerservant.com, set up a very simple CMS for blogging, and started publishing there. She accepted the lack of design and content, and lack of easy customization because she wasn’t willing to code her own solution. Nor did she want to move to another hosted solution, as she liked being able to customize her own site, as well as publish content.    Hebrew dates led her to WordPress    At some point, Amanda was looking for an easy way to display the Hebrew dates alongside the Gregorian dates on her blog entries. Unfortunately, the blogging software she was using at the time, did not offer customization options at that level. She decided to research alternative solutions and came across a WordPress plugin that did just that.     The fact that WordPress would not keep her locked into a visual editor, used themes to customize styling, and offered ways to mark up content, immediately appealed to Amanda. She decided to give it a go.    Accessibility caused her to dive deeper    When the software Amanda used at work became completely inaccessible, she started learning about WordPress. While she was learning about this new software, Web 2.0 was introduced. The lack of support for it in the screen reader she used meant that WordPress administration was completely inaccessible. To get anything done, Amanda needed to learn to find her way in WordPress’ file structure.    Eventually Amanda started working as an independent contractor for the largest screen reader developer in the market, Freedom Scientific. She worked from home every day and hacked on WordPress after hours.    Unfortunately Amanda hit a rough patch when her job at Freedom Scientific ended. Using her savings she undertook further studies for various Cisco and Red Hat certifications, only to discover that the required testing for these certifications were completely inaccessible. She could study all she wanted, but wasn’t able to receive grades to pass the courses.    She lost her financial aid, her health took a turn for the worse, she was diagnosed with Lupus, and lost her apartment. Amanda relocated to Augusta where she had supportive friends who offered her a couch and a roof over her head.    But Amanda refused to give up    Amanda continued to hack WordPress through all of this. It was the only stable part of her life. She wanted to help make WordPress accessible for people with disabilities, and in 2012 joined the  WordPress Accessibility Team. Shortly after that, she finally got her own place to live, and started thinking about what she was going to do with the rest of her working life.    Listening to podcasts led her to take part in WordSesh, which was delivered completely online and enabled Amanda to participate without needing to travel. She began to interact with WordPress people on Twitter, and continued to contribute to the community as part of the WordPress Accessibility Team. Things had finally started to pick up.    Starting her own business    In 2014, Amanda officially launched her own business, Customer Servant Consultancy. Since WordPress is open source, and becoming increasingly accessible, Amanda could modify WordPress to build whatever she wanted and not be at the mercy of web and application developers who know nothing about accessibility. And if she got stuck, she could tap into the community and its resources.    Improving her circumstances and becoming more self-sufficient means Amanda was able to take back some control over her life in general. She was able to gain independence and create her own business despite being part of the blind community, which has an 80% unemployment rate.     In her own words:    We’re still fighting discrimination in the workplace, and we’re still fighting for equal access when it comes to the technology we use to do our jobs. But the beauty of WordPress and its community is that we can create opportunities for ourselves.I urge my fellow blind community members to join me inside this wonderful thing called WordPress. Because it will change your lives if you let it.Amanda Rush, entrepreneur            This post is based on an article originally published on HeroPress.com, a community initiative created by Topher DeRosia. HeroPress highlights people in the WordPress community who have overcome barriers and whose stories would otherwise go unheard.    Meet more WordPress community members over at HeroPress.com!'>WordPress.org blog: People of WordPress: Amanda Rush</a></li><li><a class='rsswidget' href='https://wptavern.com/buddypress-5-0-to-add-category-for-storing-buddypress-blocks' title='BuddyPress 5.0 will include a way for developers to organize their blocks under a BuddyPress blocks category. Mathieu Viet shared a code example on the BuddyPress Dev Updates blog, demonstrating how to set the category property of a block to BuddyPress when registering a block type. The blocks registered with this category will appear under the BuddyPress panel in the block inserter.  As the block ecosystem expands, keeping things organized inside the block inserter is becoming more important. BuddyPress having its own designated category helps user find blocks faster, especially if they don’t know the exact block name to search for, or if they are just browsing to see what blocks are available. With the BP REST API set to land in the 5.0 release, blocks will be easier for BuddyPress developers to create. BuddyPress 5.0.0-beta1 is expected to be released around August 15. Subsequent release dates are yet to be confirmed following feedback on the beta.'>WPTavern: BuddyPress 5.0 to Add Category for Storing BuddyPress Blocks</a></li><li><a class='rsswidget' href='https://wptavern.com/build-customizer-settings-faster-by-using-the-kirki-framework-in-your-project' title='Kirki is a free open-source (MIT-licensed) framework built for developers who are looking to add Customizer Controls to their themes or plugins.    Aristeides Stathopoulos, Kirki’s lead developer has been working on the framework since 2014. Thanks to the continuous updates and improvements, Kirki has built a community on Github which includes over 1000 stars and 300 forks.    Before Kirki I never touched the customizer. Kirki helped me to understand the customizer and do a lot in less time!LebCit – WordPress Theme Developer    WordPress Core Customizer Controls    WordPress Core includes a handful of basic Customizer Controls by default. For example: text, textarea, checkbox, radio, select, dropdown-pages, email, URL, number, hidden, and date controls.    Kirki supports the Core Controls too, plus around twenty more. Generally speaking, the Kirki controls cover the more advanced use-cases. For example:    TypographyColor PalettesTinyMCE EditorSortable Fields    Kirki also offers functionality not available in Core WordPress, such as the auto-generation of your CSS output and postMessage scripts. These features, which we’ll look at later in this article, can easily cut your development time in half.    Kirki is Slow    One criticism commonly held against Kirki is that it’s slow. In fact, this criticism is used against most frameworks (including WordPress). It makes sense, right? You are loading a lot of code you might never use.    In this case, the reality is that the opposite is true. Most of the time control panels built using Kirki will actually be faster than the same panels built with Core Controls.    This is because Kirki adds an optimization layer that isn’t built into WordPress.     When the Customizer is initialized WordPress instantly tries to load all the controls, even if they are within a section or panel and the user can’t interact with them yet. In comparison, Kirki postpones the loading until just before the user will be interacting with the control.    To see the effect of this in practice, let’s try adding 50 color controls using each method.    Core Method:    for ($i = 0; $i &lt; 50; $i++){ 	$wp_customize-&gt;add_setting( &#039;color_setting_hex_&#039; . $i , array( 		&#039;default&#039; =&gt; &#039;#0088CC&#039; 	) );  	// add color picker control 	$wp_customize-&gt;add_control( new WP_Customize_Color_Control( $wp_customize, &#039;color_setting_hex_&#039; . $i, array( 		&#039;label&#039; =&gt; &#039;Color Control&#039;, 		&#039;section&#039; =&gt; &#039;title_tagline&#039;, 		&#039;settings&#039; =&gt; &#039;color_setting_hex_&#039; . $i, 	) ) ); }    With Kirki:    for ($i = 0; $i &lt; 50; $i++) {      Kirki::add_field( &#039;config_id&#039;, array(          &#039;type&#039;        =&gt; &#039;color&#039;,          &#039;settings&#039;    =&gt; &#039;color_setting_hex_&#039; . $i,          &#039;label&#039;       =&gt; __( &#039;Color Control&#039;, &#039;kirki&#039; ),          &#039;section&#039;     =&gt; &#039;title_tagline&#039;,          &#039;default&#039;     =&gt; &#039;#0088CC&#039;,      ) );  }    The results:        As you can see, the initial load speed is considerably faster when using Kirki. The code required to create the controls is more concise too.    Integrating Kirki Into Your Project    There are multiple ways to integrate the Kirki Framework into your project, the official documentation does a good job of explaining the different methods.    I recommend developers guide the user to install the plugin version of Kirki, rather than including the framework directly within your project’s code. This can be done using TGMPA or the script provided.    The reasoning behind taking the plugin route is that Kirki is frequently updated and improved. By installing the plugin version, your users will have instant access to bug fixes and security updates.     In contrast, when you include the framework as part of your project, users will only receive updates when you update your theme or plugin, which might be less frequently than is required.    Whichever method you use, be sure to check Kirki is initialized before you add your settings:    // Early exit if Kirki doesn’t exist. if ( ! class_exists( &#039;Kirki&#039; ) ) {     return; }    Fields    In the Core Method example, we first created a setting and then created a control for it. In most cases, the two are directly linked. Kirki simplifies the process and allows us to create a ‘Field’ instead. When a field is created, it builds the setting and control in the background for us.    Fields support all the control arguments you would expect (label, description, section, default), as well as some Kirki-specific arguments.    The ‘type’ argument allows you to choose one of Kirki’s 30 control types: https://kirki.org/docs/controls/    Sections    Customizer Sections allow you to group Controls together. WordPress has six built-in sections that you can add your controls too:    title_tagline – Site Identitycolors – Colorsheader_image – Header Imagebackground_image – Background Imagestatic_front_page – Homepage Settingscustom_css – Additional CSS    Sections in Kirki work exactly the same as in Core, the Kirki::add_section() method is simply a wrapper for $wp_customize-&gt;add_section() and accepts the same parameters and arguments.    Kirki::add_section( &#039;section_id&#039;, array(      &#039;title&#039;          =&gt; esc_html__( &#039;My Section&#039;, &#039;kirki&#039; ),      &#039;description&#039;    =&gt; esc_html__( &#039;My section description.&#039;, &#039;kirki&#039; ),  ) );    Panels    Panels allow you to create another level of hierarchy by grouping Sections together. WordPress Core has one built-in panel, which is ‘Menus’.    Again, the Kirki implementation is simply a wrapper for the Core functionality.    Kirki::add_panel( &#039;panel_id&#039;, array(      &#039;priority&#039;    =&gt; 10,      &#039;title&#039;       =&gt; esc_html__( &#039;My Panel&#039;, &#039;kirki&#039; ),      &#039;description&#039; =&gt; esc_html__( &#039;My panel description&#039;, &#039;kirki&#039; ),  ) );    ‘transport’ =&gt; ‘auto’    Traditionally when creating Customizer Controls you have two options for the transport argument:    Refresh – Each time the user makes a change the preview pane is refreshed to show the changes. This can take a couple of seconds.postMessage – Each time the user makes a change the preview pane is updated using Javascript which doesn’t require a refresh and is near-instant.    postMessage is undoubtedly the superior method for updating the previewer and should be used where possible. However, there is one downside, using postMessage means you need to create write custom JS code for each of your controls. A simple implementation looks something like this:    // Update the site title in real time... wp.customize( &#039;blogname&#039;, function( value ) {     value.bind( function( newval ) {         $( &#039;#site-title a&#039; ).html( newval );     } ); } );    When you have a lot of settings, this can quickly become repetitive.    This is where Kirki shines, it adds a third option: ‘transport’ =&gt; ‘auto’.    ‘transport’ =&gt; ‘auto’ works together with another argument Kirki adds named ‘output’. When both values are defined, Kirki will auto-generate the postMessage scripts for you. Which means you get all the benefits of using postMessage without having to write any of the Javascript code.    A field using transport =&gt; ‘auto’ looks like this:    Kirki::add_field( ‘config_id’, array(      &#039;type&#039;        =&gt; &#039;color&#039;,      &#039;settings&#039;    =&gt; &#039;color_setting_hex&#039;,      &#039;label&#039;       =&gt; __( &#039;Color Control&#039;, &#039;kirki&#039; ),      &#039;section&#039;     =&gt; ‘colors’,      &#039;default&#039;     =&gt; &#039;#0088CC&#039;,      &#039;transport&#039;   =&gt; &#039;auto&#039;,      &#039;output&#039; =&gt; array(          array(              &#039;element&#039;  =&gt; &#039;body&#039;,              &#039;property&#039; =&gt; &#039;background-color&#039;,          ),      ),  ) );    This time-saving feature of Kirki means that most of the time you will no longer need to write or enqueue your own postMessage scripts.    Frontend CSS Output    Another part of creating Customizer settings is generating the CSS output on the frontend. A simple example might look like this:    /**  * Output the Customizer CSS to wp_head  */ function wptavern_customizer_css() { 	$bg_color = get_theme_mod( &#039;color_setting_hex&#039; ); 	?&gt; 	 		body { 			background-color: ; 		} 	 	'>WPTavern: Build Customizer Settings Faster by Using the Kirki Framework in Your Project</a></li><li><a class='rsswidget' href='https://wptavern.com/proposal-to-auto-update-old-versions-of-wordpress-to-4-7-sparks-heated-debate' title='WordPress contributors, developers, and community members are currently debating a proposal to would implement a new policy regarding security support for older versions. The discussion began last week when security team lead Jake Spurlock asked for feedback on different approaches to backporting security fixes to older versions. Following up on this discussion, Ian Dunn, a full-time contributor to WordPress core, sponsored by Automattic, has published a proposal for moving forward with a new policy: Support the latest 6 versions, and auto-update unsupported sites to the oldest supported version. That would mean that the currently supported versions would be 4.7 – 5.2, and the 3.7 – 4.6 branches would eventually be auto-updated to 4.7. In practice, that’d provide roughly 2 years of support for each branch, and roughly 10% of current sites would eventually be auto-updated to 4.7. Once 5.3 is released, the oldest supported version would be become 4.8. Dunn outlined a detailed plan for implementing the new policy that involves testing a small subset of sites to identify problems before gradually updating older sites from one major version to the next (not all at once). Site administrators would be notified at least 30 days prior to the automatic updates with emails and notices in the admin that would also offer the opportunity to opt out. The proposal has received dozens of comments, with some contributors in support, some in favor of modifications to the rollout, and others who are unequivocally opposed to the idea of auto-updating old sites to major versions. One of the prevailing concerns is that many admins will not receive any notice due to non-functioning email addresses or not logging into their admin dashboards frequently enough. Opponents also contend that even though there are fallbacks for sites that fail to upgrade, some sites may be broken in a way that WordPress cannot detect, due to problems with plugins or themes. “A back-end notice will not even begin to make up for the lack of reliable email communication,” Glenn Messersmith said. “There are tons of site owners who never venture into the back-end once their site has been developed. These are the very people who will not get email notifications either because the email address is that of some long gone developer. “There is no way any sort of error detection can act as a safety net for those who never saw any notifications. There are all sorts of ways that a site owner might consider their site to be ‘broken’ which an update script could not possibly detect.” In response to concerns about abandoned sites breaking or administrators relying heavily on a plugin that has been abandoned, Dunn agreed that these types of situations may be unavoidable under the current proposal. “I can definitely sympathize with that situation, but we have to draw the line somewhere,” Dunn said. “We don’t have unlimited resources, and the current policy has damaging effects for the entire WordPress ecosystem. “In reality, choices are never between a purely good thing and a purely bad thing; they’re always between competing tradeoffs. “I definitely agree that it’s bad if a small number of site owner have to do extra work to upgrade their site, but in the grand scheme of things, that’s much, much better than having our security team be hindered by an extremely onerous support policy.” Proposal Author Claims “Nobody Would be Forced to Update;” Opponents Argue that Requiring Users to Opt Out is Not Consent In addition to the problem of possibly breaking sites, those opposed to the proposal are not on board with WordPress forcing an update without getting explicit consent from site administrators. Providing users a way to opt into automatic updates for major core releases is one of the nine projects that Matt Mullenweg had identified for working on in 2019. However, the plan for this proposal is more aggressive in that it would require site owners on the 3.7 – 4.6 branches to opt out if they do not want to be incrementally auto-updated to 4.7. “They still retain agency no matter what, nobody would be forced to update, everybody retains control over their site and can opt-out if they want to,” Dunn said. “Something being on by default is very different from forcing somebody to do something. We would make it very easy to opt out — just install a plugin, no config required — and the instructions for opting out would be included in every email and admin notice.” Dunn further clarified in a comment regarding who would receive these updates: Nobody would be forced, it would instead be an opt-out process. If someone has already disabled auto-updates to major versions, that would be respected and their site would not be updated. If someone clicked the opt-out link in the email, or if they clicked the opt-out button in the admin notice, then the updates would also be disabled. The only people who would receive the updates are the ones who: 1) Want the update 2) Don’t care 3) Have abandoned their sites or email accounts Several participants in the discussion asked why the process of getting these sites on 4.7 cannot be opt-in for consent, instead of forcing the update on those who don’t opt out. No matter how convenient the opt-out mechanism is, having one in place doesn’t constitute consent. Many site owners who will be forced into this process thought they would be safe in opting for maintenance and security updates and leaving their sites to perform “updates while you sleep,” as the 3.7 release post described the feature. “Insecure sites are bad, but arguably, retrospectively enlarging the power granted to oneself by this mechanism is worse,” UpdraftPlus creator David Anderson said. “Potentially it could damage trust + reputation more than insecurity. I’d argue that huge dashboard ugly, irremovable notices on older versions warning of upcoming abandonment + the need to update would be better. Let the site owner take responsibility. Don’t play nanny, abuse trust, break sites and then write blog posts about how it was necessary collateral damage. Nobody who wakes up to a broken site will be happy with that.” Andrew Nacin, WordPress 3.7 release lead and co-author of WordPress’ automatic background updates feature, encouraged those behind the proposal to clarify that WordPress only supports the latest major version and has never officially supported older versions. “It takes a lot of work, for sure, to backport,” Nacin said. “But we should still stick to our north star, which is that WordPress is backwards compatible from version to version, that WordPress users shouldn’t need to worry about what version they are running, and that we should just keep sites up to date if we are able.” Nacin offered more context on the original strategy for introducing automatic updates, which included gradually moving to having major releases as auto updates so all sites would eventually be on the latest version: First, when we first released automatic background updates, we thought that our next big push would be to get to major release auto updates in the next few years. In practice, we can do this at any time, and, indeed, 3.7 supported this as a flag. But the idea was we would invest energy in sandboxing, whitescreen protection, improving our rollback functionality, etc., so our success rate was as high for major versions as it was for minor versions. (The failure rate scales somewhat linearly with the number of files that need to be copied over, and also gets more complex when files need to be added, rather than just changed.) Once we did this, we’d simply start updating all sites to the latest version and stop backporting. Obviously we still haven’t gotten here. He commented that overall the proposal is “a great plan” but emphasized the benefits of communicating to users that it is safe to update and that WordPress only intends to support the latest version. Most participants in the discussion are in favor of the security team discontinuing backporting fixes to older versions of WordPress. The question that remains unanswered for opponents is why is it WordPress’ responsibility to force older sites to update. “I don’t think it should be WordPress’ decision to update sites that they don’t manage to major/breaking versions, but I think maintaining those branches should be stopped,” Will Stocks said. “You (WordPress) don’t own the infrastructure or business processes, or understand the support in place to manage those sites. There is also a reason those sites are still on that version today and have not upgraded past.” There are other approaches that can still draw a line to respect the security team’s limited resources without forcing any non-consensual updates to major versions. Rachel Cherry, director of WPCampus, commented on the proposal, strongly urging WordPress to establish consent before updating these sites: We are getting into the weeds of whether or not forced updates will cause tech issues and missing the real problem altogether. We are discussing force updating people’s software when they have not given consent. And for what end? What is the real problem here? Because we don’t want to worry about updating old versions? There are other ways to solve this problem. We can make a clear policy regarding EOL support for releases. We can add a setting to core that lets the user choose whether or not they want auto updates and going forward that is the decision maker. Then we have consent. We can work on education and communication regarding updates. We can email people that their site is outdated and insecure and they should update ASAP, along with links to education and best practices. If they still need help, encourage them to reach out to a professional. We can fix this problem for going forward, but we do not have implied retroactive consent just because we never put a permission mechanism in place. If someone didn’t update their site, they did so for a reason. Or indifference. Either way, we have no right to go in like this and modify people’s websites. Participants in the discussion are still wrestling with the potential implications of the proposed policy change. Minor updates have proven to be very reliable as auto-updates. Dunn reported that the 3.7.29 auto-update had only one failure that had to be rolled back to 3.7.28. Using the auto update system to push major updates to sites as old as these has not yet been thoroughly tested. “Whether or not we do auto-update the 3.7 -&gt; 5.x releases, I fully support making it clear that this is something we expect to start doing for the future (5.x -&gt; x.x+),” Jeremy Felt commented on the proposal. “The work on testing infrastructure and code to support this should absolutely be done either way.” Felt also said he appreciated the staggered rollout scheduling for the proposed releases as well as the plan to provide an officially supported plugin for disabling auto-updates. Discussion is still open on the proposal, but so far there seems to be a fundamental disagreement among participants about whether WordPress has the right to force major version updates without explicit consent, even if it is with the intention of saving site owners from potentially getting hacked. “One thing is for sure, it appears to be a majority concern so far, while many of us are fond of these noble intentions, I’m just not so sure being the benevolent overlord of the Internet is a good image for WP moving forward,” plugin developer Philip Ingram said.'>WPTavern: Proposal to Auto-Update Old Versions of WordPress to 4.7 Sparks Heated Debate</a></li><li><a class='rsswidget' href='https://wptavern.com/jetpack-7-6-improves-amp-compatibility-adds-preview-and-upgrade-nudge-for-blocks-only-available-on-paid-plans' title='Jetpack 7.6 was released this week with several improvements to the plugin’s AMP compatibility. Automattic was one of the earliest publishing partners on Google’s AMP project, as well as the original author of the official AMP plugin for WordPress. This release makes three more Jetpack features compatible with AMP:  Related Posts now display on AMP views. AMP images are now rendered via Jetpack’s image CDN if the module is active. AMP plugin is now capable of styling the Jetpack sharing buttons, without loading any additional CSS.  More AMP compatibility improvements are planned for the 7.7 milestone, including AMP support for the WordAds block. Version 7.6 also fixes a security vulnerability in the Simple Payments description output. This fix only affects those who have Premium or Professional plans and are using the Simple Payments button to sell products or collect donations. Jetpack is Beta Testing a Preview and Upgrade Nudge for Blocks Only Available on Paid Plans Jetpack is testing a new way of marketing its Paid plans inside the block editor. One of the more interesting additions to this release is that the plugin now allows for the insertion and preview of any Jetpack block in the editor, even if the block is only available via a Paid plan. Although it was included as part of the 7.6 release, it look like it’s currently only active for sites that have enabled beta testing. The first iteration was merged as a generic solution that can be extended for all premium blocks but it currently only applies to the Simple Payments block. Prior to this update, users on the free and personal plans would not see the Simple Payments block in the block inserter. This change adds the Simple Payments block to the list of available blocks and allows users to insert and preview it. The block will not show up on the frontend unless the user upgrades.  Clicking on the upgrade nudge takes the user to the checkout with the plan pre-selected and then drops them back to the editor after they purchase the required plan for using the block. After the initial implementation with the Simple Payments block, the Jetpack team plans to do the same for the Recurring Payments, VideoPress, and WordAds blocks. It’s easy to see why this controversial addition to the plugin was omitted from the release post. It adds new blocks for features that users cannot access without upgrading. The WordPress.org theme directory has struggled with a similar issue, which Justin Tadlock characterized as “crippleware,” where certain features are locked away behind upsells. If Jetpack’s implementation catches on and other plugins follow suit, it could cause the block inserter to become a frustrating minefield. Users select from existing blocks, not knowing if the blocks they are inserting require a paid upgrade until the upsell pops into the editor. This is one block editor marketing tactic worth keeping an eye on as Jetpack rolls it out for more of its blocks that are restricted to Paid plans.'>WPTavern: Jetpack 7.6 Improves AMP Compatibility, Adds Preview and Upgrade Nudge for Blocks Only Available on Paid Plans</a></li></ul></div>