S'abonner à flux
THE magazine for webworkers and site owners
Mis à jour : il y a 57 min 21 sec

WordPress and the Featured Image: How to Avoid Problems

il y a 6 hours 27 min

Depending on the theme, the WordPress Featured Image can have a massive impact on your design. Especially if you forget it, or other problems come up.

The Post Image Itself

If you don’t know the term Featured Image, because you can’t find it in your WordPress backend, on the right of the text editor, your theme probably doesn’t support featured images. In that case, you’ll certainly run into one of the problems described below. And that will happen once you switch to a theme that uses featured images.

Featured images, also referred to as “Post Thumbnails”, are images meant to give a visual presentation of the respective post or page. Where and how they are displayed is decided by the used theme. This is one factor causing one of the problems described down below.

Post thumbnails don’t place themselves. Even if you uploaded all images that you want to use in a post, you have to choose one of them to use as a post thumbnail. This required step is not easy to internalize for some of us.

My Tiresome Experience With Featured Images

Does this seem familiar? You’ve published a post, and you forgot the post thumbnail. Now, your post is practically chanceless on social media. Thus, I went on a search for a proper solution to the issue.

Does this seem familiar? You’ve changed your theme, and your new theme works with different post thumbnail sizes. Now, your previous images look distorted. This is another problem I encountered not too long ago. Thus, I went on a search for a proper solution to the issue.

Does this seem familiar? You’ve changed your theme. Your new theme works with post thumbnails, but you haven’t used any until now. This makes your previous 500 posts look pretty plain. You guessed it. This is another problem I recently needed to find a solution for.

There is one less flexible, and one very flexible solution for the given problems. Let’s take a look at the less flexible one first.

The WordPress Board Solution to the Problem

With two code snippets, we can make sure that your WordPress always uses the first image used in a post as the featured image. This is better than not doing anything, but it’s not always the best choice.

For instance, if your theme shows the entire post image above the actual text when viewing the individual post, it doesn’t make sense to display the first image in the post, which also becomes the post thumbnail, twice.

However, if your theme only uses the post images as post thumbnails, like a preview for the teaser on the landing page, the snippet solution is one that might even be the superior choice.

Enter the following code in your functions.php:

//turns the first content image into the post thumbnail function main_image() { $files = get_children('post_parent='.get_the_ID().'&post_type=attachment &post_mime_type=image&order=desc'); if($files) : $keys = array_reverse(array_keys($files)); $j=0; $num = $keys[$j]; $image=wp_get_attachment_image($num, 'large', true); $imagepieces = explode('"', $image); $imagepath = $imagepieces[1]; $main=wp_get_attachment_url($num); $template=get_template_directory(); $the_title=get_the_title(); print "<img class="frame" src="$main" alt="$the_title" />"; endif; }

In your theme, or child theme, respectively, add the following code:

<?php if ( (function_exists('has_post_thumbnail')) && (has_post_thumbnail()) ) { echo get_the_post_thumbnail($post->ID); } else { echo main_image(); } ?>

Of course, make the changes locally, using the text editor of your choice, and upload the files back to your webspace via FTP. Don’t use the online code editors in the backend. Once you’ve downloaded the files you want to edit, make a copy, so you have a backup in case something goes wrong.

Once you have the changes online, the first image of a post will always be the post thumbnail. Nothing more, but nothing less either.

More Flexible Solution Via Plugin

With the solution I just presented, we get an automatic post thumbnail. However, we had to work on the code to do so, and it only got us a generalized solution. The post’s first image is always the featured image. What if that’s not what you want, or if you don’t want to work on the code?

Just use the plugin “Quick Featured Images” by Martin Stehle.

Quick Featured Images (Free, WordPress) →

Martin Stehle’s plugin is something like the Swiss army knife for WordPress post thumbnails. The plugin is free. You can buy a charged pro version with a lot more features for 14.99 (one site), or 79 Euro (infinite number of sites). The free version is enough to solve the problems described here, though.

Using the first content image as a post thumbnail does not require you to work on the code, and all you need to do is place a checkmark:

This is the easiest task for Stehle’s plugin. For my problems of the forgotten, and the nonexistent post thumbnails, it was sufficient, and took me less than five minutes. As usual, it is installed via the WordPress backend. After the installation and activation, you’ll find the menu item “Featured Images” on the left-side navigation, as you can see in the screenshot above. By the way, making the first content image the post thumbnail can be done in the sub-menu “Default Images”.

Information on the paid additional features of the plugin “Quick Featured Images” can be found here. In its Pro version, the plugin can not only turn the first content image into the post thumbnail but also remove it from the content, avoiding the double display mentioned above.

Finally, let’s get to the problem of the disproportional image display after a theme change. Here, we simply need to newly generate the post thumbnails, in order for them to match the measurements registered by the respective theme.

For this purpose, the plugin “Regenerate Thumbnails” by Alex Mills, is a good fit.

Regenerate Thumbnails (Free, WordPress) →

“Regenerate Thumbnails” is another free plugin and can be installed and activated comfortably via backend. The functionality can be accessed in different ways.

Under Tools > Regen. Thumbnails, you’ll find a single button labeled Regenerate all Thumbnails, and that’s exactly what it does. Here, the plugin uses the values entered under Settings > Media, as well as the values defined by the respective theme. If you want to be more selective, you’ll also find the option to newly generate preview images in Media > Library for every individual image:

Conclusion: Use the Plugins

With two free plugins, you’ve taken care of the issues addressed in this article, and are also prepared for future theme changes. The plugins are also well taken care of, so I can fully recommend them.

Find more recommendable plugins here.

Catégories: News dév web

WordPress 2017: More and More Sites Use the Popular CMS

14 décembre, 2017 - 10:00

WordPress is popular, but people like to claim it was dying at times. Several recent statistics show that the CMS is more alive than ever.

Inc. 5000: WordPress is Not Only for the Poor

For three years now, the team of Nelio Software from Barcelona, Spain, has been investigating the dissemination of WordPress as an engine of the websites of the 5,000 fastest growing businesses of the year. The foundation is the list Inc 5000 from

In 2015, WordPress already made up a share of over 42 percent amongst the top 100 of the Inc. 5000. In 2016, this value jumped to over 60 percent, while settling at a slightly lower level of 54 percent in 2017. The spread among the top 100 of the Inc. 5000 is especially interesting, as these businesses are heavyweights where the website costs are only a subordinate factor.

Of Course, WordPress is Especially Interesting for “the Poor”

This effect is pretty clear when looking at the more general CMS usage statistics on Built With. In the top 10,000 websites, WordPress makes up an impressive share of 38 percent. In the top 100,000, the share is 43 percent, and it’s at 51 percent in the top million.

Built With: Recent Statistics. (Screenshot: Noupe)

It’s pretty clear that with lowering significance and increasing cost relevance, the tendency for using WordPress rises. For small and medium-sized websites, WordPress is pretty much the logical choice. Ten thousands of plugins and themes leave almost no need uncovered. There’s barely anything that can’t be done with WordPress (almost always for free).

The REST API Will be the Next Growth Engine for WordPress

For the future, we should expect WordPress to establish its position at the top even more. With the REST API and the keyword Headless CMS, applications that could not be created with the system before, become possible.

The REST API allows you to basically use WordPress as a data backend, while the frontend application can be created completely independently, and does not need to be related to WordPress outside of the API access. This also explains the term headless. WordPress is robbed of its visible part and only runs as the engine under a completely different hood.

For the small, and medium web presences, this won’t really matter. Here, I expect bigger changes from the new Gutenberg editor, which will become available in April of 2018, with WordPress 5.

Don’t Trust a Statistic That You Haven’t…

Last but not least, let me say something regarding the numbers. According to Built With, there is a WordPress share of 38 percent among the top 10,000 of 2017, with a rising tendency the wider the top list gets. The crawlers of W3Techs detect a WordPress market share of 59.9 percent in the top 10 million. Behind that number, there are only 29 percent of websites from the top list, as the market share only refers to the sites that run on a CMS. According to W3Techs, however, the majority of web presences, at 51.4 percent, don’t have any underlying CMS.

As always, we should be careful when dealing with numbers. However, it’s a fact that we can twist and turn it however we want to. We can’t deny the rising market power of WordPress. The fact that Automattic evolves more and more in the direction of a SaaS provider does not have to comfort us…

Catégories: News dév web

Christmas Experiments: Daily Dose of WebGL’s Full Power

14 décembre, 2017 - 06:30

The WebGL collection Christmas Experiments is approaching its sixth season. Since 2012, David Ronai has been curating neat WebGL experiments in the fashion of an advent calendar.

Year after year, and once again, in 2017, initiator David Ronai provides you with a selection of exciting WebGL experiments by different 3D artists. As usual, the bandwidth is broad and wide. The only overlap between the works is the focus on the Christmas theme. At least, this explains the ineffable singing moose with sunglasses.

Aside from pure aesthetics, you’ll also find interactive experiments, such as the 3D game Yolo Hero, which requires full-body effort, and access to the camera and microphone. In another game, you control an onion incapable of swimming on its way to the swimming pool. You can even plug in a gamepad to steer the onion around. The goal of the developer, Nathan Gordon, was to support the widest possible range of input methods.

You can expect at least 24 different WebGL applications, which makes up a full advent calendar format. However, it seems as if David had some trouble deciding what to put in, which is why you can open multiple doors on some days. The experiments also work on mobile devices, with some of them perfectly adapting to gesture controls.

Make a returning entry in your calendar, and let it remind you of the Christmas Experiments each morning. Maybe, they’ll inspire you to create your own 3D project.

Catégories: News dév web

Perfect for Web Developers: The Front-End Checklist Ensures Code Quality

13 décembre, 2017 - 06:30

Following checklists is proven to help improve the quality of whatever the list was designed for. David Dias’ frontend checklist is dedicated to web development and doesn’t leave out any aspects.

A Checklist is a Virtue in Its Own Right

You manage what you monitor. This is the principle of fitness trackers, which can be found on more and more wrists. Wo would deny that? More information leads to more clarity, leads to more effort, which leads to a better result in the end.

This, and of course the wish not to forget anything significant, are the driving factors behind checklists, that pretty much all of us use to different extents. The more sophisticated ones of their kind are more than simple work templates but contain aspects that we might not have thought of, no matter how much we thought about it. Perfect checklists also explain the reason why a respective point is on the list in the first place.

Front-End Checklist: The Start of Everything. (Screenshot: Noupe) Front-End Checklist: David Dias Strikes a Chord

The front-end checklist by David Dias, who considers himself a traveler between Mauritius, France, and Canada, is definitely a list of the latter kind. During late October of 2017, David uploaded his checklist to Github as open source and was caught off-guard by its success. In just six weeks, the front-end checklist accumulated almost 22,000 stars and shot up the code platform’s rankings. Obviously, David stroke a chord here.

In addition to the Github repository, you’ll also find the front-end checklist as a fully functional web app that you can use for your web projects right off the bat, and without any further requirements. Now, if you are wary because you’ve seen and discarded too many seemingly good checklists, I recommend clicking the link to David’s web app. You’ll not regret having invested your time.

17 Years Worth of Experience Put Into One Checklist

The front-end checklist is a result of David’s professional experience of the past 17 years, which he spent in different positions in the web development industry, including leading ones. By looking at the project, you can tell that this was not made by a theorist pontificating from inside the ivory tower, but by a practitioner who rolled up his sleeves.

Basically, you can sit in front of an empty screen, with a new file loaded in your favorite editor, and start working through the checklist. It is structured in a way that leads you from start to goal.

Here, you won’t just take care of HTML, CSS, and JavaScript. David also supports you when it comes to the definition of the document type, web fonts, and images, performance, safety, SEO, and even accessibility issues. Of course, you’re free to not work on some topics. The front-end checklist is flexible enough to adjust itself to your needs.

The individual list items share further information if you click on them. (Screenshot: Noupe) Front-End Checklist: Web App as a Meticulous Accountant

While you work through the items on the list, the web app keeps tab on which degree of completion you have reached. Color codes for different priorities tell you which aspects are especially important.

For most aspects, in addition to the simple list item, you’ll also find the necessary code snippet, as well as a link to background information on the respective topic. Here, you’ll only see as many details as you want to look at. All views can be collapsed and expanded, or hidden if you don’t want to deal with the topic.

At any point during the process, you can generate a report that is then sent to your printer. The respective stylesheet is optimized for printing and allows you to either archive the state of the project for your personal use or to document it for the client or other team members.

You can send a report to your printer at any time. (Screenshot: Noupe)

Unfortunately, there is no option to save the checklist in the web app, or in Local Storage, and no option to work a checklist with coworkers. Regarding the number of individual menu items created over the course of a project, the lack of a saving option is a significant disadvantage. On the other hand, the front-end checklist is open source. Thus, we can add these functions, or install it or our own servers multiple times, once for each client project. I definitely don’t want to take away from David’s achievement.

Conclusion: Work Using the Front-End Checklist

I’ve been in the business for more than 20 years, and I can say that I have never seen a more extensive, or better-executed checklist for frontend developers.

David’s project is not only a valuable asset to newbies, but can also be handy for veterans. The latter might not require the snippets and background information, but they can make sure that they did not miss any important or less important, but still useful aspects.

In this article for CSS Tricks, David gives a more in-depth explanation of the idea behind his front-end checklist.

Catégories: News dév web

The Best Email Design Hunt 2017 – Participate and Win Prizes Worth $10.000

12 décembre, 2017 - 14:00

EmailMonks, one of the largest email template production companies, presents you “The Best Email Design Hunt 2017”, an international contest to acknowledge the hard work and innovativeness of email professionals.

This contest is organized by EmailMonks in partnership with leading email brands such as Email on Acid, Campaign Monitor, Really Good Emails, and Emma. We are happy to give a platform to the seasoned and talented email professionals to exhibit their amazing emails.

If you are an email professional who has contributed to the creation of an awesome email in 2017, submit your entry in this contest and stand a chance to win prizes worth USD 10,000 including a stunning trophy, cash prizes, freebies, and a chance to get featured in Really Good Emails (provided the emails are coded and meet their standards).

Eligibility Criteria
  • The participant should have the right to submit the email for the contest.
  • The email must be designed in 2017.
  • You can only submit one entry per person.
  • The email must have authentic content drafted for real brands rather than lorem ipsum.
  • It should not be a sample email that includes stock images.

PRO TIP: It is an added advantage if your email has interactive elements; although that’s not mandatory.

How Will the Winners be Chosen?

The top 50 entries will be chosen to go to the judges’ round based on the points gathered during the public voting and shares.

Here are the scoring criteria:

The more shares, likes and votes you get, the more points you accumulate. That increases your chance to win as you are more likely to make it to the judges’ round.

PRO TIP: Make sure you share or tweet the entry directly from the gallery to ensure the validation of the allotted points.

The judges will choose ten top finalists who will be contacted on 24th January 2018 via email for the submission of their documents of proof (As per the contest eligibility rules). The winners will be announced on 31st January 2018.

What’s In It for You?
  • Winner – $750 Cash + 1-year all-access yearly subscription of Email on Acid + $750 worth EmailMonks wallet + Campaign Monitor Swag Kit + Trophy + Feature in Really Good Emails*
  • 1st Runner-up – $250 Cash + $500 worth EmailMonks wallet + 1-year Basic subscription of Email on Acid + Campaign Monitor Swag Kit + Feature in Really Good Emails*
  • 2nd Runner-up – $250 worth EmailMonks wallet + 6-months Basic subscription of Email on Acid + Campaign Monitor Swag Kit + Feature in Really Good Emails*

*: Terms and Conditions Apply


$50 EmailMonks Credit to all the early bird participants (Plus more time to gather votes and build brand visibility)


Important Dates to Remember

  • Last date to submit your entry: 10th January 2018, 11:59 PM PT
  • Top 10 finalists announced: 24th January 2018
  • Winners announced: 31st January 2018
Why This Contest?

EmailMonks has been associated with email designing and coding for quite a few years, but they never came across a design contest that targeted email designers. This sparked the idea in the minds of the Monks to establish an email design contest and encourage email professionals to share their breakthrough email design innovations. It is a small initiative but meant to take email design to the next level.

Had it not been for the creative brilliance of email designers, developers and campaign managers, email would still be that boring plain text message or gotten obsolete amidst the swarming social media platforms. Fortunately, that’s not the case. Emails are still alive and have grown to be a powerful marketing channel.

In a Nutshell

If you think you have done a great job with your email designs in 2017, this is your chance to shine and stand out from the crowd. Participate in the contest and make your year all the more rewarding…

Catégories: News dév web

WordPress Plugin: Create a Custom Login Screen With The Login Designer

12 décembre, 2017 - 06:30

You’ve probably created custom WordPress login screen for at least some of your clients. It sure wasn’t precisely super-easy. With the free Login Designer, you’ll be able to do this much faster from now on.

Good Idea: Adjusting the Login Screen Via Theme Customizer

The unique thing about Rich Tabor’s new WordPress plugin Login Designer is the fact that it seamlessly ties in with the WordPress Theme Customizer. This way, customizing your login screen works the same way as it already did with the theme.

I would even go as far as saying that the Login Designer allows any tard to build a nice login screen. It’s that simple. So, what can you, as a professional, get out of the tool?

How to Get the Login Designer

Download the Login Designer for free on Rich Tabor’s website ThemeBeans. Visit the linked page, and click on Free Download in the top right. This opens an overlay where you can enter an email address that Rich will send a download link to.

Shortly after, you’ll receive the according email. It contains the download link. Clicking it starts the download of the 2.6 MB zip archive with the Login Designer inside. Remember the zip’s storage location, and log into your WordPress installation.

The New Login Screen is in the Works in the Customizer. (Screenshot: Noupe)

Once you’ve arrived in the backend, switch to install > plugins. There, click on upload plugin in the top left, then click select file. Now, open Explorer, Finder, or your file tool of choice, go to the storage location, and select the archive Back in the backend, click on install now and be patient. In a short time, WordPress declares “mission accomplished”, and offers to activate the plugin, which you confirm.

By now, the Login Designer has found its way into the WordPress plugin index, allowing you to install it right from within the repository via the backend. Both approaches lead to the same result.

First Steps With the Login Designer

Under the menu item Design, you’ll find the sub-item Login Designer. Clicking on it opens the Theme Customizer, which the Login Designer has been tied in with, and shows you your current login screen.

To help your creativity, the Login Designer comes with two different templates, one of them in the popular dark style. The additional templates are not needed, though, as the Theme Customizer’s tools let you work right within the preview, and a click on each screen element opens the corresponding editing options.

The Final Result is More Interesting Than the Boring Default Screen. (Screenshot: Noupe)

After a training period of five minutes, you’ll already be able to create your custom login screen. As with other theme changes, you can save and publish your adjustments by clicking the designated button in the top left of the Customizer.

Getting Started With the Theme Customization API

Rich Tabor has looked deep into the Theme Customization API, and predicts a great future, as it can be used for improvements of both the theme and plugin development. Rich is surprised that rarely any developer makes use of the available possibilities. Maybe, we really should look deeper into it.

Now, if you’re curious to dig deeper, I recommend Rich’s article “Context-Aware Previews within the WordPress Customizer.” Here, Rich uses the Login Designer as a possible example, but gives a much more comprehensive presentation of the approach.

Conclusion: Login Designer is Good, Use it

To me, the Login Designer is one of those no-brainer plugins that should be installed, simply because it quickly produces impressive results. Incompatibilities are unlikely. So there’s no reason not to get it.

By the way, we release a lot of articles on fresh and useful WordPress plugins, and you can find the most recent one here

Catégories: News dév web

5 Powerful Email Subscription Plugins for Your List Building Strategy

11 décembre, 2017 - 07:00

Despite pessimistic predictions made few years ago, email marketing is alive and flourishing. With the right approach, it can become your most effective communication and conversion channel – whether you have a personal blog, a small business website, or an eCommerce store.

5 Email Subscription Plugins for Your List Building Strategy

Yet, before talking about email marketing strategies, there is one crucial step you’ll need to make: build a list of emails to apply your strategy on. In this article, we will review 5 WordPress plugins to help you grow a subscribers base.


OptinMonster is one of the most well-known tools for lead generation, and it is a no-brainer to start working with. An incredibly rich toolset allows OptinMonster to open our Top 5 and makes it a universal solution for almost any type of business – be it a small publisher, or an agency managing multiple websites.

At a glance – customization for multiple business purposes

The key strength of OptinMonster is its versatility, as you get an endless list of options for what your email opt-in form should look like and how to appear. There are ten form types including full screen takeover, custom eCommerce popups aimed at reducing cart abandonment, classic scroll-bars, and lightbox popups.

Each form has a clear purpose and can be combined with over a dozen of “smart controls” – such as referral and device recognition, exit-intent trigger, and classic scrolling or time-based popup behavior.

What makes OptinMonster stand out

Smart retargeting. You can tell OptinMonster team was working on its feature set with eCommerce websites in mind. Yet, any business will greatly benefit from retargeting settings available here. The smart control algorithm doesn’t just recognize your current subscribers/returning visitors, it allows you to customize your messages for them, personalize opt-in campaigns based on their past behavior or cookies.


The biggest bummer for those willing to try Optinmonster will probably be the absence of a free trial period. If you’re unhappy with the plugin though, you’re offered a 14-day no questions asked refund guarantee. There are three pricing plans available, however, the most wow-features like yes/no buttons, cookie retargeting, and the famous exit intent technology belong to the Pro plan – which is $29 per month.

With the basic plan ($9/mo) you’re capable of creating basic lightbox popups combined with either scroll triggering, or timed-display control.


GetSiteControl is a freemium plugin aimed at replacing several tools you’re probably using on your website. Once installed, along with subscription forms, it brings 6 more professional-looking widgets encouraging visitors to take actions:

  • Contact forms
  • Promo popups and bars
  • Live chat
  • Share buttons
  • Follow buttons
  • Surveys

Of course, it’s entirely up to you, whether you want to activate all of them or use GetSiteControl as a tool for email collection only. The convenience here is having all of the most important widgets available at your disposal in a single dashboard, rather than installing yet another plugin for each marketing goal.

At a glance – full control of the look and position

Many find email popups annoying and rush to the X button without even reading the offer. GetSiteControl does a great job at making them less intrusive and more authentic. First, there are 9 widget positions available. If you think a subscription form popping up in the middle of the screen affects user experience, you have 8 less disturbing options to choose from: left and right side fly-ins, top and bottom bars and sliders.

Second, you are in absolute control of email form appearance. Make use of the pre-made templates or change them by uploading custom images and applying website color theme.

What makes GetSiteControl stand out

The most precise targeting settings. Hands down, GetSiteControl takes audience targeting to the next level. Not only can you show your message to website visitors based on their behavior – scrolling, time spent on a page, or exit intent – but you are also capable of targeting people based on their country, device, OS, browser, language UTM data and referral source. All of that – with no coding knowledge required.


GetSiteControl is available for free in its basic version. You get a decent feature set and a credit of 50K monthly views. When it comes to paid plans, all the smart tricks belong to the $19/mo Plus. You’ll be able to integrate the app with your favorite email marketing service, set up an autoresponder and optimize conversions with unlimited A/B tests.

Plus plan comes with GetSiteControl branding removed, and unless you’re an agency, it should be more than sufficient for you.


Sumo is another all-in-one set of apps available in a WordPress plugin. Along with various types of list builders, Sumo offers interesting solutions encouraging visitors to share content published on your website: Share buttons, Highlighter, and Image Sharer.

Besides, there is a Heat Map helping analyze visitors behavior by showing you the most and the least frequently clicked areas on a webpage. Let’s take a closer look at Sumo List Builder to see how it compares to similar email opt-in plugins.

At a glance – email form builder with focus special offers

Sumo is a SaaS solution, and it wasn’t initially developed as a WordPress plugin. That’s why the first thing you notice after signing up is that Sumo dashboard doesn’t seem to be integrated with the CMS on a deep level. Yet, it appears quite intuitive and walks you through the form building steps.

In the settings window, you get to choose from 5 email opt-in forms: standard popup box, scroll box, inline form, welcome mat and a smart bar. For design, you can’t add custom images, but what’s worth mentioning – you can add elements like radio button and a countdown. From a marketing perspective, these are powerful details – especially if your offer is time sensitive, or if you want your visitors to think it is.

What makes Sumo list builders stand out

Automated content download after subscription. Lead magnets are a trending topic today. Without a doubt, they are efficient conversion boosters. Many plugins will suggest you set up a subscription success page, or at least a “Thank you” message. Sumo goes further and allows you to add a file that will be automatically downloaded by new subscribers. If you’re offering eBooks, PDFs, cheat sheets or any other files in exchange for an email – that’s very convenient.


Sumo offers a free version of its product, and that’s good news. The downside is, it allows you to collect 500 subscribers only. Once you outgrow that number, you’ll need to move forward and upgrade. Plans start at $48 per month and determined by business size they are aimed at. Sumo branding can be removed at the $332/mo eCommerce plan level.


Icegram brings email opt-in popups, notification bars, and a messenger in a single plugin. Its design is very minimalistic, and so is the creation process. Although, the admin panel interface may not seem too intuitive – mainly because you have to create popups right in WordPress editor instead of a visual builder.

At a glance – a decent solution for a tight-budget campaign

Icegram comes with an outstanding list of 80 templates for subscription forms in different styles. The good news – many of them are free. Templates designed for occasion-based marketing campaigns – take Black Friday or St. Valentine’s Day – are especially handy if you have limited time or imagination. Template texts and images are customizable, and if you haven’t found what you were looking for, you can build a popup from scratch.

What makes Icegram stand out

Simplicity. This plugin doesn’t offer fancy settings available in OptinMonster, GetSiteControl or Sumo. Truth be told, it’s pretty basic. Yet, Icegram gets the job done by being fast and straightforward. You get to set up all the essential display parameters: pages where the popup will appear, schedule, device and retargeting. For someone who needs a list builder for a short-time period – say for a temporary campaign – this might be more than enough.


Icegram is positioned as a free email opt-in plugin. However, if you’re serious about your list building strategy, you will want to access the Impression vs Conversion available for a moderate price of $27/year in the Plus plan. The absence of monthly subscriptions is not the most attractive option for such type of a product, but compared to competitors, Icegram is still more affordable than most solutions on the market.


Bloom is a creation of ElegantThemes team, and if you’re familiar with Divi, you probably know you should expect a clear intuitive dashboard and beautiful designs. Yet, that’s not the only reason why Bloom is worth your attention.

At a glance – a sweet spot between design and functionality

Not only does Bloom offer over a hundred of pre-made design templates, but also allows for customizing them. For example, you can change every detail including form orientation, image orientation, borders and edges – something you won’t find in most plugins.

There are six display types for your email form to choose from: a classic popup, a fly-in, an inline, below content and sidebar/footer positions. Bloom also has a content locker feature, which makes it another option for publishers looking for a pay-wall solution.

What makes Bloom stand out

Unique trigger points. It’s interesting to note, Bloom doesn’t overwhelm you with setup configurations, but rather offers a high-performing minimum. Thus, Bloom suggests 6 triggering options focused on a visitors interaction with the content.

For example, you can set an email form to pop up after one scrolls down, finishes reading a blog post, spends some time on a page OR hits a certain time period being inactive. A subscription form can be also triggered by a  show a comment is left or a purchase made.


Bloom plugins offers no free trial or a free version, but there is a full-featured demo available on the website, and it helps get the picture. There are only two pricing plans – one worth $89 for an annual subscription, and another one worth $249 for lifetime access.

However, it’s not just the email opt-in plugin that you get for the money – it’s more of an ElegantThemes membership including all their products currently available. Sounds like a bargain, doesn’t it?

Choosing the right solution

The choice of email opt-in plugins is not limited by these 5 solutions – there are more to be found in WordPress repository. In a nutshell, all of them serve the same goal and help you collect email addresses from your website visitors. What makes list building efficient in the end, is often not the even the plugin you choose, but the configuration you create.

What might help you make the decision and choose the right list building tool, is reverse engineering of the subscription process. In other words, instead of starting with plugin tests, start with defining a subscription scenario:

  • Who do you want to subscribe and why? Think targeting and triggering.
  • How aggressive are you willing to be about your list building strategy? Think display settings.
  • What do you give in return for an email address? Think subscription success message and autoresponder.
  • How are you planning to optimize opt-in conversions? Think real-time reports and A/B testing.

What is your list building strategy? Do you have your favorite plugin for collecting emails? Share your thoughts in comments, and let’s discuss it.

Catégories: News dév web

Modern Websites and Elements: 8 Sources of Inspiration for Designers

11 décembre, 2017 - 06:30

Digging through articles on web design trends is one thing. But finding inspiration in the wild is an entirely different matter. We have compiled eight sources of real-life inspiration for you.

It is easy to find articles on web design trends. Almost all design magazines put out at least one each year, including us. These articles cover recent design trends and prove them with one or two screenshots.

Finding real examples of good web design is a lot harder. You can’t just search for appropriate offers on Google, where they sit and wait for you to find them. Fortunately, there are friendly people out there who put in the effort to collect, evaluate and present contemporary designs.

In the following article, we will introduce you to eight of those inspiration sources.


siteInspire has been around for eight years already. The large portfolio contains over 6,300 pages. All entries were evaluated and selected for publication manually. Although anyone can hand in suggestions, the collection is growing slowly. By their own account, out of over 200 submissions a day, the editorial team only selects the ones that stretch the limits of visual, and interaction design as much as possible. This doesn’t mean that the featured pages have to be exceptionally pretty. At the moment, there are even a few brutalist designs.

You can subscribe to siteInspire as an RSS feed. In addition to that, there are the indispensable social media profiles on Twitter and Facebook.

Click To Visit siteInspire CSS Nectar

CSS Nectar also collects community suggestions, but only rates them regarding the factors design, coding, and creativity, allowing users to vote as well. Every day, one site is declared “Site of the day.”

The fact that submissions are only accepted for a fee of five USD is a bit of a downer. CSS Nectar does promise a refund if the suggestion is not included. However, I can imagine that the motivation to prompt refunds is equally low on both sides. Put differently: it is questionable if what you get to see here really are the “best of.”

Nonetheless, the gallery is useful for the quick inspiration on the go, as the bees of CSS Nectar definitely have a few beautiful designs to offer. By the way, the CSS in the name does not mean that the shown designs were great examples of CSS usage.

Click to Visit CSS Nectar InspirationUI

InspirationUI is designed to be a showcase as well. However, here, individual elements of the user interface are featured, rather than entire websites. The elements can be sorted by their purpose, allowing you to look at all notification suggestions, all 404s, all price charts, and dozens of other patterns. The operator makes sure that the submissions come from projects that actually exist. Thus, you shouldn’t find any Dribbble lalaland.

Click to visit InspirationUI Httpster

Over at Httpster, you’ll find web designs that merely look good. Here, a clean technological realization is not the primary focus. If it looks great, chances are the site ends up on Httpster. The operators make no secret of that either. Anyone can submit. The submitter doesn’t even have to be the originator of the website.

In many cases, Httpster shows more than one of the website’s pages in the detail view of the feature. This gives you a good idea of the look. Tags are used for categorization which allows you to switch back and forth in the portfolio associatively. If you can’t generate ideas here, you can’t do it anywhere.

Click to visit Httpster Freebiesbug

Freebiesbug collects free design elements for graphic and web designers. The difference to other, similar services is the fact that Freebiesbug is curated manually. Of course, the technical, but also the subjective taste is a factor. Nonetheless, the approach is still better than simply offering everything with the label “freebie.” Freebies may only be submitted by their originators.

Click to visit Freebiesbug SiteSee

SiteSee also displays attractive, modern, manually curated websites, but anyone is allowed to submit. The included designs are represented by a screenshot. A click on this screenshot leads directly to the original URL. There are no descriptions, ratings, or anything similar.

Nonetheless, SiteSee is still second to none in some cases. On SiteSee, you can filter for some criteria that others don’t offer. For example, you could filter by dominating colors. This is good if you already know which color will dominate your design, which is the case for most corporate orders. You also get to filter by the website’s categories, for instance, if the design was made for an event, product, an agency, or something else. This allows you to see how other people approached the same task.

SiteSee’s collection feature is unique as well. This way, you and the other visitors can create collections, that only deal with specific topics. These collections can be published, too. You’ll find collections like “Pink Backgrounds,” or “Dark Portfolios.” This is what truly apposite inspiration looks like.

Click to visit SiteSee One Page Love

As you might have guessed, One Page Love deals with one-pagers, websites that consist of a single page. One Page Love has been a thing for almost ten years so that it might be partially responsible for the increasing popularity of this website type. Either way, the portfolio is filled to the brim. Every website is displayed in its entirety, as a long scroll screenshot. The designs can be sorted by categories and features.

Aside from the web design collection, the operators also curate templates for the creation of one-pagers. Some of them are free, and others are charged. Submissions to One Page Love cost different amounts of money, depending on the submitter’s aim.

Click to visit One Page Love Web Creme

Web Creme is twelve years old, so it can almost be considered a part of the web’s bedrock. Web Creme cares about the creative part of web design. The aspiration is to provide the best, and most creative designs on the web. The goal is to inspire the visitor, giving him quick ideas.

Compared to fresher services like Httpster, or SiteSee, Web Creme almost seems antiquated, or let’s call it conventional. The service’s design was more up to date in the mid-noughties, than it is now. This does not derogate from the displayed pages, however. Here, you’ll definitely find some fresh inspirational material. On the left, next to the designs, the dominant colors are displayed. A click on the colors gives you an overview of all designs that have said color as a dominant one. The function does not have much use value, though. Anyone can submit suggestions using the contact form.

Click to visit Web Creme Conclusion: With These Services, You Are Well-Equipped

The presented services should be able to loosen your creative blocks, bringing the flow of ideas back to life. The different focuses of the presented services are especially helpful in covering a rather large bandwidth of possible application cases.

Did we miss any important contact points? Feel free to let us know in the comments.

Catégories: News dév web

Brand-new for You: The Evolution WordPress Framework

8 décembre, 2017 - 06:30

A new WordPress theme framework has appeared, and in this article, we would like to give you an in-depth look at it. For theme developers, the Evolution WordPress Framework brings a lot of advantages. Bloggers and other site owners will enjoy the modern and clean design.

Introduction to the Evolution WordPress Framework A screenshot of the Evolution demo page

I’ve had the idea of creating a perfect framework for the construction of new themes for a long time. There are a few things that were especially important to me during development:

  • Avoiding mistakes in updates
  • Absolute performance
  • Based entirely on WordPress Action Hooks
  • A clean and contemporary design
  • Automatic updates à la WordPress
  • An optimal WooCommerce support
  • Mobile First design
  • Optimal child theme support
  • Open source and free

In one year of development, I managed to achieve all of the above, and I’m proud of that. The result is a beautiful, fast, and safe theme, which can easily be used as a blog-oriented theme as well.

But the real merits of the Evolution WordPress Framework are hidden under the hood.

[promo-box headline=”Important Links:” linkone=”” textone=”Download Evolution for free” linktwo=”” texttwo=”Live theme demo” linkthree=”” textthree=”The documentation”]

The Error-Proneness of Standard Theme Development

Every developer knows this problem: when using a parent- / child theme combination for website development, the error-proneness of parent theme updates increases drastically.

Often, template files from the parent theme are placed in the child theme folder and then edited. Overwriting templates is a common practice when it comes to WooCommerce development as well.

This is the root of the susceptibility. With more significant releases, WooCommerce faults outdated template files in the theme folder, which you will need to adjust by hand.

A standard WordPress theme doesn’t have that function. If there are conflicts here, they may result in white pages, due to major errors. But it doesn’t have to be like that. That’s not how to do modern theme development!

Evolution: Theme Development With WordPress Action Hooks

Automattic is an example for all developers, with extensive use of the WordPress Action Hooks in the popular plugin WooCommerce, as well as the shop theme Storefront.

My entire Evolution WordPress Framework is based on these Action Hooks, as they provide incredible advantages. Once you’ve gotten a grasp of their functionality, you’ll be convinced that there is no better way to develop themes.

Let’s take a short look at the index.php of Evolution:

Evolution’s Index.php. Hooks without priorities are freely available to you.

By the way, Evolution is very well documented, as each template file refers to the used hooks, and the files that you need to look at for the revision.

Here, the index.php is vicarious for all template files. All of them use the Action Hooks – do_action( 'evolution_do_main' );, in this case. All relevant functions are saved in, and displayed by this Action Hook.

Don’t you know what the advantage is? There are two.

  • Complete update security
  • Infinite possibilities for theme development

Let’s take a closer look:

Working With the Evolution WordPress Framework

If you want to rework a theme on every page of your website, you need to throw a bunch of templates from your parent theme folder into the child theme folder.

All I need are two files. The functions.php and the style.css of the child theme. These two files allow me to rework an entire theme. And it’s not even difficult; you can do it too. However, the most important thing is the safety of a theme update.

The Absolute Update Safety of Evolution

When developing a child theme from a parent theme, two versions of a function are used. One is the function in the parent theme, and the other one being the overwritten version of the child theme. In many cases, this doesn’t end well.

I’ve experienced that before. Evolution is an entirely different thing. You don’t need to change template files, as you merely need to save a new function in the Action Hook.

An example: changing the comment form

The template file comments.php leads you to the right folder and the file with the functions used in the comments.php.

The file path would be the following: /inc/structure/markup/evolution-comments.php

There, you’ll find the following function:

<?php if ( ! function_exists( 'evolution_comment_form' ) ) : /** * Outputs the custom comment form * * @hooked into evolution_comments() action * * @since 1.0.0 */ function evolution_comment_form() { global $post; $commenter = wp_get_current_commenter(); $req = get_option( 'require_name_email' ); $aria_req = ( $req ? " aria-required='true'" : '' ); comment_form( array( 'comment_field' => '<textarea id="comment" class="plain buffer" name="comment" rows="7" placeholder="' . esc_attr( __( 'Please be kind. Thank You!', 'evolution' ) ) . '" aria-required="true"></textarea>', 'fields' => array( 'author' => '<div class="form-areas"><input id="author" class="author" name="author" type="text" placeholder="' . esc_attr( __( 'Your Name', 'evolution' ) ) . '" value="' . esc_attr( $commenter[ 'comment_author' ] ) . '" ' . $aria_req . '>', 'email' => '<input id="email" class="email" name="email" type="text" placeholder="' . esc_attr( __( '', 'evolution' ) ) . '" value="' . esc_attr( $commenter[ 'comment_author_email' ] ) . '" ' . $aria_req . '>', 'url' => '<input id="url" class="url" name="url" type="text" placeholder="' . esc_attr( __( 'Your Website', 'evolution' ) ) . '" value="' . esc_url( $commenter[ 'comment_author_url' ] ) . '"></div>' ) ), $post->ID ); } endif;

The critical hook can also be found in the file.

<?php add_action( 'evolution_do_comments', 'evolution_comment_form', 40 );

By the way, the 40 refers to the so-called priority. It controls the display of the function. The lower the number, the earlier the function is displayed in the template.

Killing and Replacing Functions

Now, if you want to rebuild the comment form, the first thing you do is delete the original function. Load, unlock and kill the function. Forever.

<?php remove_action( 'evolution_do_comments', 'evolution_comment_form', 40 );

As the function does not exist anymore, there can be no issues with an update. If it’s not there, it can’t cause problems.

Now, write your new function with the WordPress Coding Standards in mind. Don’t use outdated WordPress tags, and make sure the function is »pluggable«.

Pluggable functions use a small query before executing the function.

<?php if ( ! function_exists( 'evolution_comment_form' ) ) : // Your Function endif;

Translation: If the function does not exist yet, execute it. This is a needed amount of protection from duplicate function names.

Thus, your function for the comment form would look like this:

<?php if ( ! function_exists( 'your_comment_form' ) ) : /** * Outputs the custom comment form * * @hooked into evolution_comments() action * * @since 1.0.0 */ function your_comment_form() { // Your new function } endif;

Now, set your function in place of the old version before it died :-)

<?php add_action( 'evolution_do_comments', 'your_comment_form', 40 );

Now, your new comment form is displayed, and updates of the parent theme won’t cause any issues, as your function is the only one left.

This way, you can quickly switch any function, and any content markup, without having to fear running into problems. And above all else: without touching a single template file. All you need to do is keep the right priorities in mind, to make sure that the display is correct.

Adding Additional Functions to the Action Hooks Screenshot of the single.php of the Evolution Framework

If you want to add extra functions to the individual templates – like the single.php for example – that is quite easy to do as well. Get a short overview of the priorities, then create your function. The priorities 5, 10, and 30 are taken.

In this example, you can add it before the loop with the priority 8. This way, it is displayed after the opening markup, and before the actual loop. If you want to show it after the loop, assign a priority between 11 and 29.

<?php if (!function_exists( 'your_function' ) ) : /** * An additional function in the display of the single.php * * @hooked evolution_do_single() */ function your_function() { // Your function - displayed after the actual loop with the priority 15 // With priority 8 it is displayed before the loop } add_action( 'evolution_do_single', 'your_function', 15 ); endif; Creating New Templates is Very Easy as Well

Of course, this way, you also get to develop entirely new templates. For a static landing page, for instance. Create a template file named template-frontpage.php. Enter the following:

<?php /* Template Name: landingpage */ /** * Here, you can add all functions */ do_action( 'evolution_do_frontpage' );

Now, add content using your child theme’s functions.php. The priorities allow you to control the display. Start with the opening markup. If you want to use Evolution’s markup, your hook looks like this:

<?php add_action( 'evolution_do_frontpage', 'evolution_top_markup', 5 );

After that, you may add a function or a loop with the priority 10, and so forth… In the end, you need to add the closing markup.

The taken hooks can be found here: /inc/structure/evolution-hooks.php.

This way, you could exchange the parent theme’s entire content without any update problems. The existing websites would merely be displayed differently. Cool, right?

The Performance of the Evolution WordPress Framework

Evolution was developed for maximum speed, as neither Google nor your visitors like slow websites. An optimization for real fast loading times begins with the code of the theme.

This is also the bottleneck of many multi-purpose themes. Due to the plethora of functions, most of which are not even used, the source code is bloated, and dozens of style and script files have to be loaded.

All of that slows down a website. Evolution is reduced to the essentials. If you want more, install according plugins. In the case of a theme change, this is an advantage as well, as all functionalities you’re fond of remain.

Evolution Speed Test

The Starting Position:

  • A fresh installation without any decelerating plugins (Yoast SEO only, no caching plugin!)
  • Using an optimal .htaccess file
  • Using the AH Clean Code Plugin (turns off header links, embeds, query strings and emojis)

The Result is Clear:

The second run was measured. Access Speed-Test » Evolution WordPress Framework: WooCommerce Support

What is a theme framework without a support of the popular e-commerce plugin WooCommerce? By the way, WooCommerce also works with Action Hooks. Thus, there is no reason to copy the plugin’s templates into the child theme to rewrite them. And this is the root of many issues with WooCommerce.

You can quickly delete existing plugin functions and replace them with your own.

Example WooCommerce Sidebar:

In the two most copied WooCommerce template files – archive-product.php and single-product.php -, you’ll find the following Action Hook:

At the same time, you’ll see the function that is hooked into the hook. This is the foundation for the next works. Now, register a sidebar for widgets, and name it »WooCommerce Sidebar«. Assign the ID »woocommerce«.

<?php if (!function_exists( 'evolution_woo_sidebar_init' ) ) : /** * Registering a new sidebar exclusively for the shop pages */ function evolution_woo_sidebar_init() { register_sidebar( array( 'name' => esc_html__( 'WooCommerce Sidebar', 'evolution' ), 'id' => 'woocommerce', 'description' => esc_html__( 'This is the sidebar for your WooCommerce shop.', 'evolution' ), 'before_widget' => '<aside id="%1$s" class="widget %2$s">', 'after_widget' => '</aside>', 'before_title' => '<h4 class="widget-title">', 'after_title' => '</h4>', ) ); } add_action( 'widgets_init', 'evolution_woo_sidebar_init' ); endif;

Create a new file called sidebar-woocommerce.php. That file’s content could look as follows:

<?php /** * The sidebar containing the woocommerce widget area. * * @package Evolution Framework */ if ( ! is_active_sidebar( 'woocommerce' ) ) { return; } ?> <?php // Important: copy the HTML containers from your sidebar.php ?> <div id="secondary" class="sidebar-area" role="complementary"> <div class="normal-sidebar widget-area"> <?php if ( is_active_sidebar( 'woocommerce' ) ) : ?> <?php dynamic_sidebar( 'woocommerce' ); ?> <?php endif; ?> </div><!-- .normal-sidebar --> </div><!-- #secondary -->

Now it’s getting serious: kill the WooCommerce function

<?php remove_action( 'woocommerce_sidebar', 'woocommerce_get_sidebar', 10 );

Now, hook your new sidebar into the woocommere_sidebar hook.

<?php /** * Get the special sidebar for the WooCommerce Templates * * @overrides the woocommerce function * */ function evolution_woocommerce_sidebar() { get_sidebar( 'woocommerce' ); } add_action( 'woocommerce_sidebar', 'evolution_woocommerce_sidebar', 10 );

Now you’ve got a new sidebar on all WooCommerce pages, without having to touch a single template file. This works for all WooCommerce functions. Take a look at the templates (woocommerce/templates/), search for the Action Hook, and just exchange the functions.

By the way: the pages cart and checkout are no WooCommerce pages, but regular WP pages. This means, that the normal blog sidebar is displayed on them. You can either change that using the nosidebar.php template, or the plugin AH Display Widgets. The plugin lets you influence the display of certain widgets on specific pages.

Evolution Framework free download »   Evolution Documentation | Evolution auf GitHub Live Demo »


Developing modern WordPress themes has never been easier. Update safety, clarity, and infinite options are all united in the Evolution WordPress Framework. On top of that, there’s the high speed. What more can you ask for?

Catégories: News dév web

Nostalgia: Was Everything Really Better in the Good Old Days?

7 décembre, 2017 - 06:30

Everything was better in the good old days. That’s a stereotype that I still hear a lot. However, thinking about it, I can hardly agree.

If you, like me, are making your money online, the changes of the past 23 years are probably the best thing that could have happened to you. Let’s take a look at all the things that changed.

1. Working From Home

There were home offices in the nineties as well. However, as they were costly for the employer, they were only available under particular conditions. You would have needed to be severely disabled, or have restricted mobility for other reasons.

My Home Office is My Castle.

Today, a home office is pretty much standard. The number of employees permitted to work from home at least on certain work days is increasing.

Even VPN-protected access is no longer an investment decision. The technology is available and cheap. This indeed was not better in the past.

2. International Contacts

It does not matter anymore if the commission I work on digitally comes from Chile or Munich. It also does not matter if my acquaintances are 200 or 2.000 miles away. It has never been easier to cultivate and maintain contacts or to make business past country borders.

In the Good Old Days, I Definitely Had Less Contacts…

Social networks make for the virtual cohesion of large circles of friends. Professional networks ease the collaboration across business and country borders. This was not better in the past.

3. The Web is Always Open

When I remember that I still need a cable for my smartphone for the weekend trip, I’ll just switch the browser tab, and order one at the tech-store of my choice. Especially at night, I like to remember what I forgot to order. As my computer is online 24 hours a day, I don’t even need to keep it in mind. I can just switch from my bed to my desk and place the order.

The web is especially useful when it comes to errands that you can’t get everywhere. For instance, I’m partial to the vegan lifestyle, and there is only a small selection of products available in my area. On the web, I have access to the full brigade of specialized online shops .

Pretty, But Inflexible From a Temporal and Spatial Point of View.

I still remember the disk and CD battles I had to fight when I bought new software. The Microsoft products were always the most impressive ones. It took two people to carry them out of the store, as a single person was not able to handle the weight.

Today, I can either buy cheap software in any online shop or use web app solutions off the bat. This is how I take care of my billing, for example. Some providers use subscription models, which are distributed via the web as well. If possible, I still prefer the old purchase model from the software shop. Though, I’ll admit that I have never purchased a software in the middle of the night.

What can I say? This was not better in the good old days either.

4. Communication

I already mentioned that maintaining contacts all around the world has become much more comfortable. This comfort is heavily fostered by the modern options of free communication.

There are dozens of messengers available to satisfy the need for communication of the Homo Digitalis. Today, even video communication is comfortable and reliable, and it was completely useless and extremely expensive at the end of the nineties. By the way, I always prefer Skype, but I can’t avoid the ubiquitous WhatsApp.

This definitely was not better back then.

5. Knowledge

It’s very contradicting that, during our time of worldwide internet access, which means access to a cornucopia of knowledge, the collective stupidity is spreading so rapidly in all areas.

I Had This Opus in My Bedsit.

Generally, it is a good thing that I don’t need an entire wall full of Brockhaus books in order to have an extensive general knowledge available to me. This was not better in the past either.

Of course, there is also a flipside to digitalization. However, this was also the case during the times of the industrial revolution. To me, personally, the advantages of the modern options clearly outweigh the downsides.

What do you think? Was everything better in the good old days?

Catégories: News dév web

Progressive Web Apps: Closest to Native Apps With HTML5 and JavaScript

6 décembre, 2017 - 06:30

Native apps for Android and iOS devices have several major advantages over web applications developed using HTML5 and JavaScript. For instance, native apps can access camera, file system, and other device features, while web apps can only do that with reservations. However, more and more functions that used to be exclusive to native apps can be recreated via JavaScript, so the differences between web apps and native apps are shrinking. The so-called progressive web apps are barely inferior to classic apps.

HTML5 and CSS3 Were Just the Beginning

With HTML5, the markup language for the web has made a quantum leap forward. Aside from better semantics, the support of the mobile internet was another main goal of HTML5.

Special input types for forms were introduced, displaying case specific keyboards on smartphones and tablets – for email addresses and numeric input.

Different Keyboards Depending on the Input Field

The CSS3 animation options allow you to get your website moving in a resource-efficient way, without having to rely on JavaScript.

Increasing Number of JavaScript APIs for Mobile Device Support

Aside from usability and design, the many mobile features are a major reason as to why apps are interesting in the first place. In the past years, several JavaScript APIs, specifically designed for mobile devices, were introduced.

One of them is the geolocation API, which has access to the location information of a device, as well as the device orientation API, which allows you to access the device orientation.

APIs that enable audio and video streaming, as well as capturing are still in development. The vibration and battery status API allow you to set vibration alarms and query the battery percentage.

When looking at the current state of the different JavaScript-APIs, you’ll notice that a big amount of them was specifically designed for mobile terminals.

Setting Up Notifications and Background Services

With the notification API, it has been possible to create notifications for a while now. However, it is always necessary to have the website that sends the notification open in the browser.

Notification Executed by a Website

With the new push-API and the service-worker-API, the respective website does not need to be opened anymore. The service-worker-API registers a JavaScript that is executed independently of the website. We can compare this to the background services of native mobile apps.


The example registers the file “app.js” as a service worker. This file and the script it contains are executed independently of the website. This is done using a service of the browser which always runs in the background. This file allows us to set up and execute push notifications.

self.addEventListener("push", function(e) {    const optionen = {  body: "Text",  icon: "/icon.png",  badge: "/badge.png" }; event.waitUntil(self.registration.showNotification("Title", options)); });

A simple implementation of the push-API is possible using the library Push.js. Here, you can also find fallback solutions for older browsers, allowing you to set your notifications without worries.

Use the service workers to download all necessary files for offline usage. Ideally, depending on the app, it will be usable without an internet connection.

Web-App-Manifest: Full-Screen Mode and Icon on the Start Screen

Eventually, you can use the web-app-manifest, so that the look and feel of your web app is no different from a native app.

It is a JSON file that is integrated into the HTML document.

Among other things, the file defines how the web app will be displayed on the start screen. Thus, you get to define a name, short name, as well as the icons in different sizes.

 "short_name": "My App",  "name": "My Super Awesome App",  "icons": [    {      "src": "icon.png",      "type": "image/png",      "sizes": "48x48"    } ],  "start_url": "app.html" }

“start_url” also lets you put in a different start URL that loads whenever you access the web app via the landing page.

With the attribute “display”, it is possible to display the web app without any browser elements, like the address bar.

"display": "standalone";

You can also enter a background color using “background_color”. If you want to, the display of the app can be tied to a certain device orientation. The options “landscape” and “portrait” are available via “orientation”.

Once you’ve set up a service worker, and placed a web-app-manifest, the mobile Chrome displays a badge at the bottom page border while loading, which lets you place the web app on the start screen.

Badge for the Installation of a Web App

However, the badge will only be displayed if you have visited a website at least twice on two different days, within two weeks.

By now, at the latest, your web app cannot be told apart from other native apps. When accessing it via the start screen, you can’t tell that the web app was loaded into a browser. On top of that, many features, like notifications and other device functions, are possible.

However, another requirement has to be met: your web app has to run via HTTPS, which applies to many JavaScript-APIs as it is.

Lighthouse Extension for Chrome

With the extension Lighthouse, Chrome provides you with a tool that helps with the development of progressive web apps.

Lighthouse Extension

For instance, it lets you check if your web app fulfills all criteria to be added to the home screen.

Catégories: News dév web

Shards: Modern UI Kit Based on Bootstrap 4 as Open Source

5 décembre, 2017 - 06:30

There are many UI kits, including free ones. Designrevision’s Shards still sticks out of the masses, as it is not only free but also very considerable and modern.

Catalin Vasile aka Designrevision

Shards is the first product by Designrevision. Behind that name, there’s the “design-focused software developer” (self-description) Catalin Vasile. Catalin’s plan for Designrevision seems to be the creation of a brand to market high-quality design helpers in the future.

One reason as to why I came to that conclusion is the structure of the respective website, on which you can find the menu item “Store.” However, in said store, the only product available right now is Shards. Shards is open source under the liberal MIT license. Thus, you can use Shards for both your personal, and your commercial purposes, like client commissions. By his own account, Catalin is currently working on a charged add-on for Shards. This would be the first paid product.

Shards and Bootstrap 4: This is What Modern Design Looks Like

Shards is based on the most recent Bootstrap version, Bootstrap 4. The UI kit also integrates the icon sets of Material Icons, and Font Awesome, giving you easy access to more than 1.500 pictograms. Icons are implemented as classes and don’t require any other manual interventions in the source text. This way, it is possible to add icons to almost any element, without any further adjustments. This can either be done with a clear visual distinction from the text or seamlessly, right next to each other.

Card Based Designs With Shards. (Screenshot: Noupe)

Regarding typography, there is room for Shards to improve. At least, using the plain Google font Poppins in different versions for headings is a good starting point. Fallback is always on the set system font. When it comes to coloring, Shards uses brighter variants than the Bootstrap standard. The content cards are very close to material design as well.

However, the interactive elements are what really makes Shards interesting. The design and controls of forms and their fields look exceptionally elegant. This also goes for the validation. The design of the sliders and date pickers are real eye-catchers, too. This very neat design continues through all areas of the UI kit, including buttons, badges, progress bar, alerts, tooltips, popovers, and modals.

Beautiful Form Validation. (Screenshot: Noupe)

Aside from color-coordinated navigation bars, Shards contains two complete landing pages, as well as the five Megabyte large Sketch file that includes the design. For the free download, you need to tell Catalin a valid email address to send the download link to. In the email, you’ll find a link to the UI kit, as well as another Sketch file. If you want to, you can leave out the checkmark for the newsletter subscription. Entering a first and last name is not obligatory either.

You should definitely get ahold of Shards. By the way, Catalin has announced the release of a React version of his kit. At this point, there is no schedule on that, though.

You can find the Shards demo here, and view the documentation right here.

Catégories: News dév web

The 16 Most Useful and Most Functional WooCommerce Snippets

4 décembre, 2017 - 06:30

In my article on the most useful WordPress snippets, I already announced that a report on the best WooCommerce snippets would follow soon. Et voilà, here are my best WooCommerce snippets.

You’ll know some of these snippets already, but I’m confident that I’ll be able to show you something new as well. Thus, I have summarized the best pieces in one post.


  • WordPress from Version 4.6
  • WooCommerce from Version 3.xx
  • PHP-Version 7.xx

You either copy the snippets into your active theme’s functions.php, or you set up a page-specific plugin for the task.

Please do not copy the opening <?php.

[blue-box text=” Please keep in mind: Create a file backup before each change made to the functions.php. Don’t use the WordPress editor to alter the file. If something goes wrong, you’ll lose access to your website. Make your changes directly on your web hosting, via an FTP access.”]

[promo-box headline=”This could be helpful:” linkone=”” textone=”The WooCommerce Documentation” linktwo=”” texttwo=”The Visual WooCommerce Hook Guide” linkthree=”” textdrei=”The WooCommerce 3.0.x Code Reference”]

1 – Providing WooCommerce Support for Your Theme

If your active theme is not prepared for using it with WooCommerce, you should start there and provide the support. That’s the only way to ensure that your new shop is displayed optimally. This process consists of three parts.

Part One: First, declare the support for your theme, and add a product lightbox if you want to.

<?php /** * Theme Support for WooCommerce */ add_theme_support( 'woocommerce' ); /** * Add Theme Support for WooCommerce Gallery Lightbox */ add_theme_support( 'wc-product-gallery-lightbox' );

Part Two:
Remove WooCommerce’s opening and closing container DIVs from the plugin’s templates.

<?php //remove function attached to woocommerce_before_main_content hook remove_action( 'woocommerce_before_main_content', 'woocommerce_output_content_wrapper', 10 ); //remove function attached to woocommerce_after_main_content hook remove_action( 'woocommerce_after_main_content', 'woocommerce_output_content_wrapper_end', 10 );

Part Three:
Replace the DIVs with the ones your theme uses. To do so, you have to figure out the names of your theme’s container DIVs. A right-click on your website, and “Inspect” can help you with that.

Find Your Content Containers. Here, they are highlighted.

Afterwards, add these containers to the following code:

<?php if ( ! function_exists( 'evolution_wrapper_start' ) ) : /** * Adding theme's starter container for WooCommerce support */ function evolution_wrapper_start() { echo '<div id="primary" class="content-area"><main id="main" class="site-main" role="main">'; } add_action( 'woocommerce_before_main_content', 'evolution_wrapper_start', 10 ); endif; if ( ! function_exists( 'evolution_wrapper_end' ) ) : /** * Adding theme's ending container for WooCommerce support */ function evolution_wrapper_end() { echo '</div></main>'; } add_action( 'woocommerce_after_main_content', 'evolution_wrapper_end', 10 ); endif;

Now, your shop should be displayed just as well as the rest of your theme.

2 – Replacing WooCommerce Breadcrumbs With the Ones of Yoast SEO

A ton of WordPress fans uses the breadcrumb navigation of the popular Yoast SEO plugin. You can also use it on the WooCommerce pages. This snippet does the trick:

<?php if ( ! function_exists( 'evolution_replace_breadcrumbs' ) ) : /** * Replace WooCommerce Breadcrumbs with Yoast breadcrumbs */ function evolution_replace_breadcrumbs() { remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20, 0); function evolution_yoast_breadcrumb() { if ( function_exists('yoast_breadcrumb') ) { yoast_breadcrumb('<nav class="woocommerce-breadcrumb">','</nav>'); } } } add_action( 'init', 'evolution_replace_breadcrumbs' ); endif; 3 – Change the Number of Products Displayed in a row

By default, WooCommerce shows four products in a row. Changing this is very simple.

<?php /** * Change number of products per row to 3 */ if (!function_exists('evolution_loop_columns') ) { function evolution_loop_columns() { return 3; // 3 Products in a row } } add_filter('loop_shop_columns', 'evolution_loop_columns'); 4 – Change the Number of Related Products

You get to choose how many related products your theme shows. Sometimes, this can come in handy.

<?php /** * WooCommerce Extra Feature * -------------------------- * * Change number of related products on product page * Set your own value for 'posts_per_page' * */ if (!function_exists('evolution_related_products_args') ) { function evolution_related_products_args( $args ) { $args['posts_per_page'] = 4; // 4 related products $args['columns'] = 4; // All four in a row return $args; } } add_filter( 'woocommerce_output_related_products_args', 'evolution_related_products_args' ); 5 – Define How Many Products are Displayed on a Page

If you have a lot, or very few products in your shop, it might make sense to edit the number of products per page.

<?php /** * Custom Product Cols * @return 12 Products per Page */ if (!function_exists('evolution_loop_shop_per_page') ) { function evolution_loop_shop_per_page( $cols ) { $cols = 12; return $cols; } } add_filter( 'loop_shop_per_page', 'evolution_loop_shop_per_page', 20 ); 6 – Hiding Other Shipping Rates When Shipping is Labelled as Free

Do you offer free product shipping? Then you should use this code, as WooCommerce typically shows all shipping options in the checkout area.

<?php /** * Hide shipping rates when free shipping is available. * Updated to support WooCommerce 2.6 Shipping Zones. * * @param array $rates Array of rates found for the package. * @return array */ if (!function_exists('evolution_hide_shipping_when_free_is_available') ) { function evolution_hide_shipping_when_free_is_available( $rates ) { $free = array(); foreach ( $rates as $rate_id => $rate ) { if ( 'free_shipping' === $rate->method_id ) { $free[ $rate_id ] = $rate; break; } } return ! empty( $free ) ? $free : $rates; } } add_filter( 'woocommerce_package_rates', 'evolution_hide_shipping_when_free_is_available', 100 ); 7 – Loading WooCommerce CSS and JavaScript Files on Shop Pages Only

WooCommerce loads its files on each page of your website, including the homepage, and the articles. Firstly, this does not make sense, and secondly, it slows down your site. Thus, you should use this snippet. With this one, WooCommerce files are only loaded where they are needed.

<?php if (!function_exists( 'evolution_manage_woocommerce_styles' ) ) : /** * Optimize WooCommerce Scripts * Removes WooCommerce styles and scripts from non WooCommerce pages. */ function evolution_manage_woocommerce_styles() { //first check that woo exists to prevent fatal errors if ( function_exists( 'is_woocommerce' ) ) { //dequeue scripts and styles if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() && ! is_account_page() ) { wp_dequeue_style( 'woocommerce-layout' ); wp_dequeue_style( 'woocommerce-smallscreen' ); wp_dequeue_style( 'woocommerce-general' ); wp_dequeue_style( 'evolution-woostyles' ); wp_dequeue_script( 'wc_price_slider' ); wp_dequeue_script( 'wc-single-product' ); wp_dequeue_script( 'wc-add-to-cart' ); wp_dequeue_script( 'wc-cart-fragments' ); wp_dequeue_script( 'wc-checkout' ); wp_dequeue_script( 'wc-add-to-cart-variation' ); wp_dequeue_script( 'wc-single-product' ); wp_dequeue_script( 'wc-cart' ); wp_dequeue_script( 'wc-chosen' ); wp_dequeue_script( 'woocommerce' ); wp_dequeue_script( 'prettyPhoto' ); wp_dequeue_script( 'prettyPhoto-init' ); wp_dequeue_script( 'jquery-blockui' ); wp_dequeue_script( 'jquery-placeholder' ); wp_dequeue_script( 'fancybox' ); wp_dequeue_script( 'jqueryui' ); } } } add_action( 'wp_enqueue_scripts', 'evolution_manage_woocommerce_styles', 99 ); endif; 8 – Use a Unique Sidebar on the Shop Pages

About 95% of all developers don’t know how to solve this without overwriting WooCommerce templates. On the internet, you won’t really find a solution either, as most results will also suggest overwriting the templates.

So today, you’ll learn a secret from me :-) From now on, you’ll solve the problem like a Jedi, and not like a Padawan.

Part One: Create a New Sidebar for the WooCommerce Pages <?php if (!function_exists( 'evolution_woo_sidebar_init' ) ) : /** * Registering a new sidebar exclusively for the shop pages */ function evolution_woo_sidebar_init() { register_sidebar( array( 'name' => esc_html__( 'WooCommerce Sidebar', 'evolution' ), 'id' => 'woocommerce', 'description' => esc_html__( 'This is the sidebar for your WooCommerce Shop.', 'evolution' ), 'before_widget' => '<aside id="%1$s" class="widget %2$s">', 'after_widget' => '</aside>', 'before_title' => '<h4 class="widget-title">', 'after_title' => '</h4>', ) ); } add_action( 'widgets_init', 'evolution_woo_sidebar_init' ); endif; Part Two: Create a WooCommerce Sidebar File

For the new sidebar to be usable, we need a new theme file. Create an empty file called sidebar-woocommerce.php. To do so, please use an HTML editor.

Take the HTML containers from your sidebar.php. Now, add the following code to the file, and upload it to your theme, or child theme folder via (S)FTP.

<?php /** * The sidebar containing the woocommerce widget area. * * @package Evolution Framework */ if ( ! is_active_sidebar( 'woocommerce' ) ) { return; } ?> <?php // Important: Copy the HTML containers from your sidebar.php ?> <div id="secondary" class="sidebar-area" role="complementary"> <div class="normal-sidebar widget-area"> <?php if ( is_active_sidebar( 'woocommerce' ) ) : ?> <?php dynamic_sidebar( 'woocommerce' ); ?> <?php endif; ?> </div><!-- .normal-sidebar --> </div><!-- #secondary --> Part 3: Swap the Sidebars on the Shop Pages

The original function of the WooCommerce framework allows for the exchange of the two sidebars. All of these functions are “pluggable.” This means that they are easy to overwrite.

A rewritable function looks like this:

<?php if (!function_exists( 'a_great_function' ) ) : /** * Making a function rewritable */ function a_great_function() { } add_action( 'great_function', 'a_great_function' ); endif;

The if (!function_exists( 'a_great_function' ) ) : means that the function is only executed if there is no other function with the said name. However, if there is a function with this name, the function is not executed. This is why these functions are so easy to rewrite. And we’ll do just that.

Exchanging the Sidebar: The Snippet

The following snippets result in the WooCommerce sidebar being displayed on your shop pages, instead of the regular sidebar.

<?php /** * Get the spezial sidebar for the WooCommerce Templates * DO NOT CHANGE THIS FUNCTION, or the WooCommerce Sidebar will not work. * * @overrides the woocommerce function * * @hooked woocommerce_sidebar() */ function woocommerce_get_sidebar() { get_template_part( 'sidebar-woocommerce' ); }

Now, on all shop pages, instead of your sidebar.php, the file sidebar-woocommerce.php is accessed, and you get to fill both sidebars with different content.

9 – WooCommerce Checkout: Turn the Phone Number Into Voluntary Information

Entering your phone number at checkout is obligatory. I’m sure that several potential customers don’t like that. The following snippet makes it a voluntary option to enter the number.

<?php if (!function_exists( 'evolution_phone_no_pflicht' ) ) : /** * Make the phone number an optional entry * * @hooked woocommerce_billing_fields() * * @return filter */ function evolution_phone_no_pflicht( $address_fields ) { $address_fields['billing_phone']['required'] = false; return $address_fields; } add_filter( 'woocommerce_billing_fields', 'evolution_phone_no_pflicht', 10, 1 ); endif; 10 – Displaying Percentage Savings for Offers

Increase the psychologic purchase incentives by displaying your offers’ potential savings in percent.

<?php if ( !function_exists( 'evolution_custom_sales_price' ) ) : /** * Show percent savings on sale - Only for WooCommerce version 3.0+ * * @add filter to products * * @return filter */ function evolution_custom_sales_price( $price, $regular_price, $sale_price ) { $percentage = round( ( $regular_price - $sale_price ) / $regular_price * 100 ).'%'; $percentage_txt = __(' Spare ', 'evolution' ).$percentage; $price = '<del>' . ( is_numeric( $regular_price ) ? wc_price( $regular_price ) : $regular_price ) . '</del> <ins>' . ( is_numeric( $sale_price ) ? wc_price( $sale_price ) . $percentage_txt : $sale_price . $percentage_txt ) . '</ins>'; return $price; } add_filter( 'woocommerce_format_sale_price', 'evolution_custom_sales_price', 10, 3 ); endif; 11 – Add Your Share Buttons to the Product Page

To increase the range of your shop, users should be able to share each product on social media. Thus, it makes a lot of sense to display your share buttons on the product pages. To do so, the shortcode for the manual integration into a theme is required.

It can be found in the documentation of your WordPress theme. I’m using the Shariff Share-Buttons for my integration.

<?php if (!function_exists( 'evolution_share_for_woocommerce' ) ) : /** * Implementing share buttons on the page of an individual product * * @hooked woocommerce_share() */ function evolution_share_for_woocommerce() { echo do_shortcode( '[[shariff]]' ); } add_action( 'woocommerce_share', 'evolution_share_for_woocommerce', 5 ); endif;

The Result:

12 – Removing Product Tabs From the Product View

The tabs can either be removed one by one or all at once, which can be advantageous at times.

<?php if (!function_exists( 'evolution_remove_product_tabs' ) ) : /** * Removing the product tabs of the description * * @hooked woocommerce_product_tabs() */ function evolution_remove_product_tabs( $tabs ) { unset( $tabs['description'] ); // Remove the description tab unset( $tabs['reviews'] ); // Remove the reviews tab unset( $tabs['additional_information'] ); // Remove the additional information tab return $tabs; } add_filter( 'woocommerce_product_tabs', 'evolution_remove_product_tabs', 98 ); endif; 13 – Live Cart Update Via Ajax

You don’t have to refresh the shopping cart to keep it up to date. Ajax “Live” is a much better way to do that.

<?php if (!function_exists( 'evolution_header_add_to_cart_fragment' ) ) : /** * Ensure cart contents update when products are added to the cart via AJAX * * @add_filter woocommerce_add_to_cart_fragments */ function evolution_header_add_to_cart_fragment( $fragments ) { ob_start(); ?> <a class="cart-contents" href="<?php echo WC()->cart->get_cart_url(); ?>" title="<?php _e( 'View your shopping cart' ); ?>"><?php echo sprintf (_n( '%d item', '%d items', WC()->cart->get_cart_contents_count() ), WC()->cart->get_cart_contents_count() ); ?> - <?php echo WC()->cart->get_cart_total(); ?></a> <?php $fragments['a.cart-contents'] = ob_get_clean(); return $fragments; } add_filter( 'woocommerce_add_to_cart_fragments', 'evolution_header_add_to_cart_fragment' ); endif; 14 – Displaying a Link to the User Account in the Theme

If the user is not logged in, the link shows “Login/Register,” and uses the login page. If the user is logged in, the link reads “My Account,” and takes you straight to your user account.

<?php if ( is_user_logged_in() ) { ?> <a href="<?php echo get_permalink( get_option('woocommerce_myaccount_page_id') ); ?>" title="<?php _e('Mein Account','evolution'); ?>"><?php _e('My Account','woothemes'); ?></a> <?php } else { ?> <a href="<?php echo get_permalink( get_option('woocommerce_myaccount_page_id') ); ?>" title="<?php _e('Login / Register','evolution'); ?>"><?php _e('Login / Register','woothemes'); ?></a> <?php } ?> 15 – Adding the Customer Payment Method to the Admin Email

After each order, you receive an email from WooCommerce. With this snippet, you can add the customer’s payment method of choice to the email.

if (!function_exists( 'evolution_add_payment_method_to_admin_new_order' ) ) : /** * Adding the customer's payment method to the admin email * * @hooked woocommerce_email_after_order_table() */ function evolution_add_payment_method_to_admin_new_order( $order, $is_admin_email ) { if ( $is_admin_email ) { echo '<p><strong>Zahlungsart:</strong> ' . $order->payment_method_title . '</p>'; } } add_action( 'woocommerce_email_after_order_table', 'evolution_add_payment_method_to_admin_new_order', 15, 2 ); endif; 16 – Change the Order of Fields in the Checkout Area

Using this snippet, you can adjust the WooCommerce checkout area. You get to edit the order of fields in the checkout area, or even remove them.

<?php if (!function_exists( 'evolution_reorder_woo_fields' ) ) : /** * Alter the order of fields in the checkout area, or remove them completely. * * @add_filter woocommerce_checkout_fields */ function evolution_reorder_woo_fields( $fields ) { //move these around in the order you'd like $fields2['billing']['billing_first_name'] = $fields['billing']['billing_first_name']; $fields2['billing']['billing_last_name'] = $fields['billing']['billing_last_name']; $fields2['billing']['billing_company'] = $fields['billing']['billing_company']; $fields2['billing']['billing_address_1'] = $fields['billing']['billing_address_1']; $fields2['billing']['billing_address_2'] = $fields['billing']['billing_address_2']; $fields2['billing']['billing_city'] = $fields['billing']['billing_city']; $fields2['billing']['billing_postcode'] = $fields['billing']['billing_postcode']; $fields2['billing']['billing_state'] = $fields['billing']['billing_state']; $fields2['billing']['billing_country'] = $fields['billing']['billing_country']; $fields2['billing']['billing_email'] = $fields['billing']['billing_email']; $fields2['billing']['billing_phone'] = $fields['billing']['billing_phone']; //just copying these (keeps the standard order) $fields2['shipping'] = $fields['shipping']; $fields2['account'] = $fields['account']; $fields2['order'] = $fields['order']; return $fields2; } add_filter( 'woocommerce_checkout_fields', 'evolution_reorder_woo_fields' ); endif;
Catégories: News dév web

CSS3 for Design Experts: Four Attributes to Use Today

1 décembre, 2017 - 06:30

With the introduction of CSS3, design options for websites have changed a lot. Especially animations and transparencies are commonly used ever since. However, there are a lot of attributes that are rarely seen. The lack of browser support is not a good enough reason to forgo these options anymore. Thus, in your next project, you should try four of these wrongfully neglected CSS3 attributes.

CSS3 Tip 1: Individual Frames With “border-image”

The individual design of frames was impossible before CSS3. While there was a selection of predefined frames – like simple, double, or dotted ones -, that was pretty much it.

Frame Graphic

With the CSS3-attribute “border-image,” frames can be custom made via a graphic. Here, the graphic is divided into nine areas. The eight outer areas are the frame or the frame corners.

p { border: 30px solid transparent; border-image: url("frame.png") 30 round; }

This example shows how a frame is defined. First, “url()” is used to put in the graphic’s web address. The second value defines how the graphic will be divided into its nine components. Typically, all nine areas are of equal size (divided into thirds). However, you can also enter absolute values in pixels (without a unit), or percentual values (with a percent sign).

The final value defines if the lines are merely repeated (“repeat”), repeated and rounded (“round”), or if they are not repeated, and simply stretched to the total width or height, respectively (“stretch”).

Rounded, repeated, and stretched frames

The frame’s width is still defined via “border,” or “border-width.” To hide the default frame, you should set the frame color to “transparent,” as shown in the example.

“border-image” is supported by all common browsers, such as the Internet Explorer, Chrome, Firefox, and Safari.

CSS3 Tip 2: Numbering With “counter-reset” and “counter-increment”

Numbered lists with the “<ol>” element have never been an issue. However, things become more difficult if you want to automatically number headings within a document, for instance. Here, the different “counter” attributes are used.

Numbered Heading

First, define a counter for your document, by assigning any name to the attribute “counter-reset.” This attribute resets the specified counter. You can set an unlimited number of independent counters.

body { counter-reset: chapter; }

Subsequently, select an element to apply the counter to, and assign the attribute “counter-increment” with the counter name. Subsequently, using the function “counter()”, you can receive the numbering via “::before”, or “::after”.

h2::before { counter-increment: chapter; content: "Chapter " counter(numbering) ": "; }

“counter-reset” and “counter-increment” are supported by all common browsers.

CSS3 Tip 3: Fitting Images With “object-fit”

Static web designs are becoming increasingly rare. More and more layouts are either responsive or fluid so that elements always adapt to the available space.

With images, this is still a bit of a problem, though. Oftentimes, they are merely scaled down due to a lack of space. With the attribute “object-fit”, there are different options to adjust them. To do so, first, define a width and height for the image. If these have a divergent aspect ratio, “object-fit” comes into play.

Image with and without (top) “object-fit”: “cover” and “contain”

With the value “cover,” the attribute makes sure that the image always keeps its aspect ratio, and fills the entire area of the element. However, here, areas on the right and left or top and bottom, respectively, are cut off to prevent the image from filling the entire space.

Alternatively, the value “contain” lets you scale the image in a way that the entire image is visible when keeping the aspect ratio. In contrast to “cover,” there are edges on the left and right, or top and bottom border, respectively.

Except for the Internet Explorer, all common browsers support this attribute.

CSS3 Tip 4: Clipping Texts Via “text-overflow”

With especially small resolutions, images are not the only thing that needs to be clipped. Sometimes, texts are too long as well. Usually, this is not an issue for continuous text. It is simply wrapped. The main problem can occur with headings with long words or texts, which are displayed on a single line.

Text With and Without “text-overflow”

The CSS3 attribute “text-overflow” prevents texts from just sticking out of the available space, by clipping them, and assigning ellipsis dots.

The attribute doesn’t work alone, though, but in combination with the attribute “overflow,” and the value “hidden.”

h2 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

In the example, the text of an “<h2>” element is clipped via “text-overflow”. The value “ellipsis” makes sure that the clipped text is equipped with ellipsis dots. “white-space” also prevents the text from becoming multi-line.

Using the value “clip” instead of “ellipsis” results in clipping without ellipsis dots.

All common browsers support this attribute.


Catégories: News dév web

152 Free Icons on Gadgets and Technology

30 novembre, 2017 - 12:00

Fitting icons support written statements, and are visual breakpoints. The colleagues of Swifticons are some of the most diligent icon painters of the scene. By now, their icon set contains 2,480 icons. Now, they decided to toss 152 towards the web designer people.

Swiftcons has picked symbols from the categories Gadgets & Technology, and released them for free download. The inevitable smartphone is included, as well as the indestructible mouse. C64 experienced nostalgics in their fourties can enjoy a floppy disk. Those searching for meaning might find their key to wisdom.

All you have to do to get the content is enter your email address. You’ll receive a mail with a 0 USD invoice.

The full set of icons is 98 USD, by the way.

In another email, the download button will lead you to your goal. The free icon set is available in the formats AI, Sketch, PNG, SVG, and EPS. The users of the MacOS tool IconJar get a chance with a compatible format. There is nothing stopping you from using it in customer projects either.

Have fun with that!

Catégories: News dév web

WordPress: What You Need to Know About SaaS and Plugins

30 novembre, 2017 - 06:30

The SaaS trend has been going on for years. The developer likes it; the user is not that enthusiastic. Now, the trend is moving more and more towards the developers of WordPress plugins. Let’s take a look at the advantages and disadvantages for developers and users alike.

WordPress Plugin as a SaaS: Not All New

I’m sure you know one of the oldest SaaS plugins in WordPress, Akismet. On the page of the plugin installed on your blog, Akismet connects your blog to the API of Automattic’s spam preventer.

Akismet: SaaS Veteran Made by Automattic. (Screenshot: Noupe)

The entire logic, especially the algorithm for spam detection, does not run on your blog. That’s a good thing, as your server’s performance would most likely suffer if that weren’t the case. Additionally, the spam detector’s logic would be very vulnerable if all you had to do was grab it from the plugin code via reverse engineering. VaultPress, the backup plugin from the same developers, also works as a SaaS, aka “Software as a Service.”

SaaS in General: a Concept Establishes Itself

Generally, with SaaS solutions, larger installations are more cost-efficient. Instead of one-time license fees per user, the client pays much lower, monthly usage fees, that can add up to the previous one-time price within a year or two, and even exceed it in some cases. In return, the monthly charge is low. Most of the time, the fees also include continuous care, such as functional updates and expansions, as well as the required support. This way, the client receives a product that is always up to date.

As, usually, the customer only has to run a small share of the SaaS solutions’s functionality locally, this allows for the realization of applications that require exceptional computing power. Here, the SaaS providers make use of scalable platforms, such as Amazon Web Services, or Microsoft’s Azure. These platforms make sure that performance and storage can be scaled almost infinitely – a characteristic that the local computer doesn’t have. This way, the application can become as performant as needed, as there are no tangible physical limits.

Some customers still have mixed feelings when it comes to this concept. The desire to own something you pay for is too widespread. However, it has been softened a lot over the past years, especially with the triumph of streaming services. Today, the problem lies more in the private sector, where many potential customers still prefer a one-time payment over monthly fees.

A real disadvantage from the customer’s point of view is the necessity of a reliable internet connection and the security concerns regarding that. You can’t deny the risk of a total failure when the SaaS provider goes bankrupt.

SaaS: The Internet Connection Should be Reliable. (Photo: Pixabay)

The SaaS provider, however, is happy to have more control over their product, as well as the option to implement changes and improvements at any time, without having to stick to update cycles. Overall, the provider has a lot more power over their product than before. By expanding his solution, he also gets the option of upselling, which means presenting additional offers to the existing clients.

The liquidity improvement resulting from the SaaS solution is not to be underestimated either. Over a period, customers pay their usage fees on a regular basis. This kind of plannable numbers makes every banker happy, and render the labeled time periods safe for planning. On the other hand, the SaaS provider has to pay any investment in infrastructure measures from the usage fees. Especially in the beginning, this risk is not to be undervalued, and it doesn’t even exist when selling individual licenses.

WordPress and SaaS: WTF?

As I’ve mentioned already, Saas in WordPress is not a brand-new concept. In fact, the model can make sense for many commercial plugins, but not for all of them. The SaaS model allows for more performant function expansions than the previous model of an installation with a bunch of PHP files and the entire program code. This should be undisputed.

It seems to be the concept of a steady cash flow that is the main reason for as to why the solution is so attractive to WordPress developers. Of course, this cash flow doesn’t come without any effort. At most, the developer of a SaaS plugin is busier than he was before. With monthly payments, the customers expect a continuously high value in return. Nonetheless, the perspective of monthly income is becoming increasingly fascinating to freelance developers.

The Benefits of WordPress Plugins as a SaaS Solution Returning Income

A monthly usage fee can add up to a nice sum over the course of a year, potentially more significant than what you could have demanded as a one-time payment. It is very likely that a SaaS model gets you more money out of your plugin than before. For the first time, you can make clear liquidity plans. Just calculate how many subscribers you need to cover your yearly costs.

Via upselling, upgrading your existing customers to more expensive plans is easier, as the consistent payments lower the client’s threshold for cost decisions. This also makes price increases a lot easier, as they can be very moderate, while still netting you a significant increase in revenue.

Due to your clients’ subscription status, you automatically focus more on the existing ones than new clients, while the latter is your only focus without a subscription model. This pretty much automatically improves your product, as you want to keep your SaaS customers, so you have to give them reasons not to cancel their subscription.

Making Money by Watching the Time Go by – It’s Not That Simple. (Photo: Pixabay) Protection From Piracy

You don’t hand out your code so that nobody can steal it from you. When making a living off plugins, that is a fundamentally important factor. Reverse engineering is not hard to do with plugins, but it’s a very different thing when it comes to “real software.”

Easier Development

You do what you want to, and when you want to do it. At most, your customers will be happy to see you pumping out new features hyperactively. Nobody has to install updates, and you don’t need to care about the safety of old versions. Life can be so simple.

You’ll also like to hear that the only environment SaaS needs to run on is the cloud server you want to use for it. For the first time ever, it is entirely irrelevant what kind of environment requirements your clients provide – a dream come true.

Feedback and Usage Data

You don’t really know anything about your customers. You don’t know where your plugin is being used. You don’t know how big the website is that it is used on. You don’t know if it works without errors and if said errors are critical or not. Basically, you don’t know anything except for the fact that you sold it.

If your plugin is conceived as a SaaS, the opposite is the case. You have access to all the things you couldn’t access before. And it is not insignificant either. It’s some automatic feedback from usage data. You can see where your plugin is struggling to do what it’s supposed to do. Because you are free from the compulsion to gain more and more new clients, you get to focus on the existing customers and their problems.

Another aspect is just as important. You receive target group metrics as well. You have more available to you than simple addresses. You basically get to look into the needs of your potential clients, allowing you to develop your product based on said information. This starts with the fact that you see which kind of website uses your plugin, and to what extent. I wouldn’t be surprised if you were to find one or two features that nobody ever uses. If so, you should answer the question why that is the case. Could it be that the function is not conceived well enough?

You’ll also recognize if your plugin stops running. Is the customer about to leave, or does he have a technological problem? In both cases, you can use this information proactively.

The Downsides of Offering WordPress Plugins as SaaS

Of course, there are plugins, like the previously mentioned Akismet, that you can’ realize as a SaaS without making major compromises regarding feature scope and performance. The phenomenon does not affect the majority, but the minority of possible plugins, though. Thus, in most cases, you’ll have to weigh the previously listed advantages and disadvantages to make your decision.

Before the SaaS and on the Seas, we are in God’s Hands (Alteration). (Photo: Pixabay) Risk of Customer Acceptance Regarding Prices

Not everyone will like renting a plugin. Thus, you’ll need an excellent communication strategy if you want to convince potential buyers of your product. This is a general truth that always applies. However, it is also important that your plugin allows you to develop this kind of strategy in the first place.

If you have developed an exotic plugin that allows your customers to import an odd file format, thus executing something that happens about once a year, it will be difficult to find a strategy that leads to a constant flow of money. Here, you should identify the target group in need of this plugin, and sell it via one-time purchase.

Another reason why WordPress has grown so big so fast is the fact that it has two significant advantages that are independent of the performance in itself. It is cheap, in the sense of free. That’s a significant argument for most bloggers. And it also allows WordPress users to keep their website to themselves. Thus, WordPress is some counter-draft to social networks and hosted services, where you put your content into a stranger’s hands.

The average WordPress self-host fan will tend to be interested in “owning” his content, his website, and having the highest possible influence on it. Naturally, locally installed plugins with a full scope of features are more attractive to them. With a SaaS, you as the site operator hand out information to someone else. This mindset is independent of the data protection question.

In many cases, a handyman mindset is a reason for people hosting their own WordPress installation, instead of using the offer. For some, but not all of these WordPress users, this is about tinkering, learning, and their own advancement.

Here at Noupe, a clear indicator of the mass phenomenon is the fact that articles on handling WordPress are very popular. Webhosts also dedicate entire blogs to handling WordPress, as they see the need for them. In the comments, you’ll find plenty of knitting, sewing, fashion, fitness, and whatnot bloggers that enjoy their hobby, or (side) occupation, and only looked into WordPress internals, or even free WordPress Hosting available because they had to. There they even find help with things such as fixing Internal Server Error 500 which they surely had never heard of before.

Risk of Client Acceptance Regarding Data Protection

When your plugin processes data, it does that on your customer’s servers. This is good for you as you don’t have to take care of processor performance and storage. However, you are the one paying for AWS or Azure, or any other platform service when operating your plugins as a SaaS.

Depending on the type of information, in the times of Snowden, your clients will only be comfortable if it is clear who saves the data, where they store it, and for which purpose they do so. A European server location could lower the acceptance threshold, but a certain mistrust would remain. There are little to no ways to influence this psychological issue. But it has the potential to heavily affect your plugin’s turnover.

These Plugins Work as a SaaS Already

If you’re thinking about the topic, it could be helpful to look at a few examples of plugins who’s developers have already switched to (or started out with) the SaaS model. The following examples are some of the most successful of their kind. As I have previously mentioned Automattic’s Akismet and VaultPress above, you won’t find them in the following list.


OptinMonster started as a simple WordPress plugin for self-hosts in 2013. The tool’s task was collecting email addresses, supposedly mainly for newsletter subscriptions, but the user’s fantasy should be the judge of the goal definition. The developers quickly realized that the technology reached its limits much faster than expected, due to the dependence on the technological conditions of the respective WordPress installation. Aside from varying performance, especially plugin and theme conflicts made the support difficult.

OptinMonster Landing Page (Screenshot: Noupe)

Since late 2015, OptinMonster is a SaaS that can be used on any website and CMS, including WordPress, of course. The dedicated WordPress plugin still exists, but it is only the individual control center and the data interface for the underlying technology running in the cloud.


Jetpack is a plugin developed by Automattic and makes the functions of, the hosted version of the blog software, available to users of the self-hosted version. We have already reported on the feature giant several times, but mainly in conjunction with the European data protection. Nonetheless, Jetpack is a fantastic example of a SaaS solution in the form of a WordPress plugin.

Jetpack Landing Page (Screenshot: Noupe)

Under the hood of the Jetpack plugin, Automattic unites more than three dozens of so-called modules, each with an own function area. By now, there’s a business model behind Jetpack, after it has been distributed for free for years. In different price categories, the monthly fee rises to the highest stage, the Jetpack Professional, which will cost you about 300 USD a year. In return, Jetpack promises an all-around safe, and performant website with all the convenience. Hosting is not included, however.

Jetpack is a hybrid of SaaS elements and locally running modules. Here, the SaaS elements focus on things that are stored on a dedicated server via API. This is about the performance-intensive spam filtering, the performance-heavy real-time backup, or the CDN, which takes the burden of bandwidth-hungry files, such as videos, away from your server. Calculating  “Related Posts” also requires more power than the average WordPress user would expect.

Caldera Forms

Caldera Forms started as a pure WordPress plugin as well. One of the early leading features was the transformation of form content into PDF, as well as the storage of said content. This only worked where the technological requirements of the respective WordPress installation were on a professional level. The plugin worked unpredictably on shared space.

Caldera Forms Landing Page (Screenshot: Noupe)

The switch to a SaaS model easily solved this and several other problems, as the respective server’s configuration and overall power are subject to the Caldera team’s design. Instead of exposing themselves to unjustified criticism, they decided to create an appropriate environment themselves.


Imagify is a cloud service trying to make the web lighter, by compressing images as much as possible. Image compression is a performance-heavy business, though. Everyone that has compressed a bunch of images in a row knows that. It takes patience.

Imagify Landing Page (Screenshot: Noupe)

Imagify’s WordPress plugin is the interface to the SaaS part of Imagify. Upload images to your website as usual. Then Imagify grabs, compresses, and places them in your media library via the plugin.


Weglot is a SaaS capable of translating your website from any language to any other language. You can either add the translations yourself, as usual for other multi-language plugins. Or you can allow Weglot’s algorithms to translate the content all by itself.

Weglot Landing Page (Screenshot: Noupe)

Siri, Cortana, Google Assistant, Alexa – regarding their speech detection features, they all work in the cloud. The mobile devices don’t provide the performance needed for speech processing. Weglot’s workspace looks similar. If you don’t add the translation, as it is impossible to do for all existing languages, Weglot should do the job as close to real-time as possible. To do so, the plugin hands the content over to the SaaS.

Conclusion: WordPress Plugins as Saas? Yes, But…

I think it should be clear that the idea to offer (and use)  WordPress plugins as SaaS is neither clearly fantastic nor clearly stupid. As always, the truth heavily depends on the factors of the individual case. Generally, one can say that a SaaS becomes more and more useful the more functions a plugin has. And if we add aspects of Machine Learning, as with Akismet, there is no way around a SaaS. Overall, you should always apply the above-mentioned aspects to your own idea or use-case, and then weigh them up against each other.

Clients should realize that a plugin based on SaaS is potentially safer, and better adjusted to the customer’s needs. These are significant benefits that weigh heavily against the felt disadvantages.

If you can imagine going for a smooth entrance into the world of SaaS, you should definitely check out Freemius. For plugin and theme developers, they basically offer a narrow-gauge SaaS out of the box.

Further Reading Tips:
      • The Problem in WordPress – Musings on Plugins & SaaS | Chris Lema
      • WordPress Plugins: SAAS! Gota Go SAAS. Right Brah? | Josh Pollock
      • Careful! This Simple Pricing Experiment Cost Us $2,000 in Revenue | Freemius
      • 8 Awesome WordPress Web Apps Paving the Way for WordPress as a SaaS Platform | Elegant Themes
      • 3 reasons software as a service (SaaS) is the future for WordPress developers | GoDaddy Blog
      • Converting a WordPress Plugin into a SaaS (Our Journey) | Syed Balkhi
      • The Rise of SaaS WordPress Plugins | Element 502
Catégories: News dév web

Variable Fonts are Now Available in Adobe and Chrome

29 novembre, 2017 - 06:30

The idea of variable fonts has been around for a while. In the future, instead of multiple font versions, line weights and font widths are supposed to be unified in one single font file. With Adobe’s new creative cloud, and Google’s new Chrome, variable fonts can now be used in practice.

One Font, Multiple Line Weights and Font Widths

Until now, different line weights and font widths of a single font had to be divided into individual versions. With well developed fonts, you’ll find versions with a line weight ranging from “thin” to “heavy”. On top of that, there are versions with different font widths, like “condensed”, “compressed”, or “wide”. In combination with each other, dozens of individual versions of a font are nothing uncommon – especially when you also count the italic versions in different variations.

With the new variable fonts, all of these traits are united in a single version. Even better: the line weights and font widths can be adjusted steplessly. Previously, we were reliant on given values. With variable fonts, we are a lot more flexible, as we get to freely adjust the width for different font sizes.

Formally, the new varibale fonts are OpenType fonts of version 1.8. With this format, the traits for the appearance of a font are defined – including the possible font widths and line weights. The respective display of the font with certain values is interpolated via the application, like Adobe’s Illustrator, or Google’s Chrome, for example.

Creative Cloud 2017 Supports Variable Fonts

One reason why there are only a few variable fonts is that it was not possible to use them before. With the Creative Cloud’s new version, however, we finally get to use the new fonts.

For instance, Illustrator and Photoshop both support variable fonts now. When you’ve selected a variable font, there is an additional icon in the “Character” window, which opens a window with three sliders. There, you get to define the strength, width, and tilt of the font.

Variable Fonts in Adobe Illustrator

On top of that, it is also possible to select predefined versions like “Bold Condensed Italic”, without making the settings yourself.

Of course, Adobe also comes with a few variable fonts. From now on, “Myriad”, “Minion”, “Acumin”, and “Source” are variable fonts included in the Creative Cloud.

Chrome 62 Supports Variable Fonts as Well

Almost simultaneously, Google released a new version of its Chrome browser, which also supports variable fonts. Variable fonts can also be provided as webfonts, and integrated in a stylesheet in the usual way.

This lets you create your own font version using the well known CSS attributes “font-weight”, “font-stretch”, and “font-style”, without having to integrate multiple font files.

h1 { font-family: "Source Sans Variable"; font-size: 2em; font-weight: 700; font-stretch: 75; }

In the example, we set the line weight of a “<h1>” element to 700, and font width to 75.

However, the mentioned CSS attributes only support common values. For example, “font-weight” knows keywords like “normal” and “bold”, as well as numbers like “100” and “900”. The bandwidth of options, however, is much bigger than the values that the attributes “font-weight”, “font-stretch” and “font-style” know.

The CSS attribute “font-variation-settings” gives you access to all characteristics of an OpenType font, though. Depending on the font, there are additional values available to you, which don’t support the normal “font-*” attributes.

For example, use “wght” to define the line weight and “wdth” for the width of a font.

h1 { font-family: "Source Sans Variable"; font-size: 2em; font-variation-settings: “wght” 700, “wdth” 75; }

The second example contains the identical values for weight and width, but was defined via “font-variation-settings” attribute.

The attribute “font-variation-settings” also has the benefit that it can be animated. In conjunction with the CSS attributes “transition” or “animation”, moving text effects can be created as well.

In order to highlight a text, you could change the line weight or font width via animation.

On the website Axispraxis, you get to see what variable fonts look like in action. You choose from different variable fonts, and get to adjust the weight and width using sliders.

Variable Fonts on Axispraxis

Via JavaScript, the according CSS attributes are altered dynamically.

Another advantage of variable fonts – especially in webdesign – is the lower file size. Instead of multiple font files, only one files is needed, containing the font information in a much more compressed way.

Further Browser Support and Application Options

Aside from Chrome, Apple’s Safari supports variable fonts as well. This is not really suprising, given that the new font format was developed by Adobe, Microsoft and Apple. But other browsers will follow suit in the near future.

By the way, not only fonts, but also iconfonts can be realized, allowing you to dynamically adjust the icon’s line weight.

The new format of variable fonts will be a huge gain for graphic and webdesigners.

Catégories: News dév web

WordPress 4.9: The Most Exciting Novelties for You

28 novembre, 2017 - 06:30

WordPress in version 4.9 has recently been made available. It comes with a couple of exciting new features. But before you try them, you’ll need to update. That’s because WordPress 4.9 “Tipton” is a major release.

These main versions don’t update automatically, so you’ll have to do it manually. Once that’s done, try the new features, as they are fun, and user-friendliness has been improved once more.

WordPress 4.9: New Customizer features

Of course, lots of changes were made under the hood, but the customizer offers the obvious novelties.

1 – The Theme Preview

Let’s start with the new theme preview. Here, there are two new functions. For one, already installed themes are loaded into the customizer when you click on »Theme => Live Preview«. This allows you to see what your website will look like without having to activate the template.

From now on, you’re also able to search for new themes within the Customizer.

2 – The Theme Search

Choose »Change« to not only be able to view the installed themes in the customizer, but also look for new themes in the official index. Click the customizer’s marked spot:

This great new thing has one downside, though: you’ll only get a real preview of the themes after installation. Before that, you’ll see the existing, not very convincing WordPress preview.

The Post Revisions for the Customizer

You read that correctly: the customizer received “post revisions”. That’s exactly what this new function feels like. By the way, the correct name would be changesets. These changesets are used for changes to the theme.

Now, theme changes can either be applied immediately, saved as a draft, or planned for a certain time.

If you happen to make changes without saving, you’ll get a message notifying you that there are more recent settings.

Automatic Saving

From now on, WordPress does not only save your posts and pages automatically but the theme settings as well. With a click on “Apply Autosave”, the changes you made to the theme are applied.

Theme Changes Now With a Preview Link

This function could be pretty useful for blogs with multiple authors, or freelancers that want to show their clients changes to the theme without the theme going live. Now, this is really interesting. You can get the preview link here:

Here’s where you’ll find the preview link for your changes The Code Editors: Syntax-Highlighting

With the new WordPress versions, all code editors, including the additional CSS in the customizer, display the code in a nice colorful format. However, you don’t only get a complete syntax highlighting, but also a code completion.

Code-Highlighting and Auto-Completion in the Customizer.

You might consider this a toy, but it serves an important function for beginners and advanced users. It reduces errors in the code and the infamous white pages. That’s because it also highlights defective input in color.

WordPress 4.9 Widgets: Improvements and a Novelty

Not only has the customizer been improved significantly, a widget has been added too. With the help of the new gallery widget, you can now present your photos in the sidebar or the footer.

The New Gallery Widget The New Gallery Widget in WordPress 4.9

Directly within the new gallery widget, you can create and present a gallery of your prettiest photos. By the way, the widget acts like a regular WordPress gallery. If you happen to need further functionalities, like the presentation of folders, you have to install a plugin as usual.

The Text Widget Was Improved

WordPress 4.8 already brought new functions to the text widget. It introduced clear text and HTML tabs. Version 4.9 goes one step further and lets you implement media. It has basically turned into a text editor »Light«.

Implementing Media Into the Text Widget

oEmbed-Support and Shortcodes

But that’s not all. By default, the widget can also display shortcodes. On top of that, it has received support for oEmdeds. This means a simple link is all it takes to embed videos, tweets, or similar media in the widget.

The Integrated Code Editors for Themes and Plugins

Here, changes were made under the hood as well, and that’s a good thing! Many users used the editors without being aware of the consequences.

The smallest mistake can already cause syntax problems which result in the infamous white pages. In the worst case, the respective websites can cannotaccessed anymore.

WordPress 4.9 has taken care of the problem by showing a meaningful warning, when a user attempts to access the code editors. Additionally, WP now recommends making changes using a child theme.

By the way, I recommend not using the code editors at all, and making changes via your (S)FTP access instead. If you get to see a white page due to an error, you can take back your edit anytime.

My Opinion on 4.9

Some of the functions come in handy and will establish themselves. Many things have improved, the system has become even more user-friendly. How do you like the novelties of this WordPress version?

Catégories: News dév web

Not Only Gadgets: Cyber Monday 2017 for Web Developers, Marketeers and Website Owners

27 novembre, 2017 - 15:00

Certainly. It’s Cyber Monday, and you can quickly amass smartphones, voice assistants, game consoles and loads of other gadgets. Boring. Fortunately, we have TemplateMonster to care for our professional requirements.

TemplateMonster Keeps Growing Steadily

Readers of Noupe Magazine have known TemplateMonster for years and years already. Often did we team up with them to bring our audience one fine deal and another. Over the last few years, TemplateMonster has seen a steady growth. Opening up for third parties transformed the platform into a full-blown marketplace where developers sell their own web products.

I said web products because the days when TemplateMonster was limited to themes and templates are long gone. Nowadays you still find themes and templates there, but also plugins and any other web product you might need. The international expansion has led to the inception of localized websites, support chains and blogs which widens the target audience to many more potential customers than a solely English platform ever could.

Treasure Trove for WordPressers

We here at Noupe Magazine have always admired TemplateMonster for their vast portfolio of high-quality WordPress Themes. Still, even after upsizing the product portfolio as a whole, WordPress Themes are the backbone of the service. Who’d wonder as WordPress is the most popular CMS of our globe? With TemplateMonster you’re sure to find the theme you are looking for.

Santa’s Bag

Christmas is just around the corner. Should you feel the need to build some x-massy landing page, the premium theme Santa’s Bag might just be what’s right for you. This theme comes aligned with the latest design trends and blows a breath of fresh air into an age-old tradition.

Carmen Design

If you’d like a very contemporary look for your creative business while still not having to invest too much unpaid time into it, TemplateMonster has you covered, too. Carmen Design conveys a solid personal and at the same time modern impression.


This bold theme is for the self-exposer in all of us. Who isn’t calling himself a Speaker nowadays? There are more conferences and camps than anyone could ever seriously visit. Are you a part of this self-referential circle Speaker might just be the perfect fit.

Cyber Monday Saves You Munnay

With TemplateMonster Cyber Monday is not only on Monday but runs until the last seconds of the 30th of November 2017. Up until then, you can save massively. The whole product portfolio is discounted by 50 percent.

Many providers lure you in with the promise of massive rebates. Once in you find out that the promised massive discounts are valid only for the unattractive parts of their offering while the hot stuff still runs undiscounted. TemplateMonster follows a different path. Here, a 50 percent discount really means a 50 percent discount and is valid for the whole portfolio. Should you be most interested in WordPress Themes, check out their top seller’s page.

No coupon codes are needed as all products are transparently rebated right in the online shop. Just add them to your shopping cart and save big time. Happy sparing!

Catégories: News dév web

WrapKit: This Powerful Bootstrap 4 UI Kit Boosts Your Web Projects

24 novembre, 2017 - 10:00

WrapKit is a freshly released UI kit based on the brand-new Bootstrap 4 and built to enhance it. If you’re a Bootstrapper you will want to have this.

Bootstrap Enhanced: WrapKit is Features Galore

WrapKit by WrapPixel is a full-blown UI kit with loads of individual elements. Should you be looking for page templates you’ll find more than 25 unique examples of various niche sites. Should you like to build your design house brick by brick, there are more than 500 individual elements and page templates. Should you prefer the middle way, you will find the more than 180 interface sections, widgets, areas or however you want to call them, valuable. These deliver small functional contexts that you combine to make up the page as a whole. On top of all that WrapKit ships with more than 3,000 premium font icons representing a value of 79 USD alone.

WrapKit’s ready-to-use UI blocks cover your every need.

Besides all these ready-to-use items WrapKit also delivers the raw material. These are all the used Photoshop files as well as the SaSS code that’s behind the magic. WrapPixel claims that the code base as a whole is absolutely well documented and is successfully serving 60k customers.

You might have imagined by now that such a large feature set isn’t coming for free, and that’s certainly true. Should you need WrapKit for a single application, it will set you back 24 USD. Multiple aka unlimited applications (sites, apps, whatever) will cost you 69 USD. Is your application large-sized and built as a SaaS, you will have to shell out 399 USD. All prices are one-time fees with lifelong free updates and one-year premium support.

Evaluate WrapKit in Various Ways

WrapPixel has an extensive demo site to showcase what WrapKit is able to achieve for you. Don’t visit the demo in a hurry, it will suck you in, and recklessly destroy your plans for the rest of the day. The documentation, which is reachable from that same location, is elaborate enough to communicate the concepts and get you started quickly.

The Restaurant demo is only one of many. All are equally beautiful. (Screenshot: Noupe)

Looking at a demo is certainly not the same as getting your hands dirty. Thus, it’s good news that WrapPixel offers a Lite version of WrapKit for absolutely free. WrapKit Lite is a stripped-down version of its larger brother and comes with more than 25 elements, a few landing page templates, and 17+ interface sections. This is not a lot, but surely enough to get an idea of whether the product conceptually appeals to you or not.

Basic questions need not be asked, such as “Is this responsive?” It certainly is as it is based on the latest version of Bootstrap, the gold standard in modern web design. While Bootstrap alone saves you hours and hours of work because of its thoroughly thought-through framework characteristics, WrapKit will literally simplify your life as a designer. I wouldn’t say that your sites will create themselves but you’ll be pretty close to that.

Who Let The WrapKit Out? Who, Who?

The company behind WrapKit has a proven track record of delivering high-quality templates for the harder parts of web design. WrapPixel offers free and premium admin templates using various underlying technologies such as Angular, SASS, Bootstrap and more. All their premium offerings are accompanied by respective lite versions to give you an idea of what to expect.

Hooray, We Have a Heavy Discount on Offer!

For today’s Black Friday Noupe has teamed up with WrapPixel to offer our dear Noupe readers a reduced price for the full-blown WrapKit Pro package. Upon checkout use the coupon code noupe-blackfriday-25 and receive a 25 percent discount. Take the spare money and have a nice candle-light dinner at your favorite restaurant. You’ll certainly need to buy the Extended Use license for that. But hey, why not?

Catégories: News dév web



Une question, une remarque ?
Une demande de devis ?


A propos...

Yves Bresson, ingénieur en informatique, consultant freelance, spécialisé dans le développement web (CMS, PHP, Laravel, Ajax, jQuery, Bootstrap, HTML5, CSS3) et d'applications mobiles (iPhone, Android). Voir le profil de Yves Bresson sur LinkedIn