Implementing a datepicker fallback for HTML5 date input fields

In one of my advent calender post, I show you, how you can set a range for the date input type (not yet translated). In a comment, someone reminded me, that this new input type is not yet supported by Firefox. It might be available in future version (currently it can be enabled by setting a flag in Firefox 56+), but until then, we should implement a fallback.

Checking for browser support

I still like the native date input fields a lot better than the JavaScript based datepickers, especially on mobile devices. To check if a browser supports those new input fields, you can use a very simple check:

Read more →

Direct downloads with the “download” attribute

You probably all know that situation. You have some files on your website and you want to enable your users to easily download these files. This task is pretty easy and you might wonder, why I am writing a blog post about this. Well, not every user knows how to do it easily and you might want to make it as easy as possible for those inexperienced users, to download the files.

The default behavior for links to files

So how do you usually link to files a user should be able to download? You probably just use a simple link like in this example:

<a href="http://example.com/image.jpg">Download image</a>

Read more →

Mark affiliate links in your content using CSS

As a German blogger, there are some things you should be aware of. One of them is the “Gesetz gegen den unlauteren Wettbewerb” (law against unfair business practices). If you run a business and you think, that someone is taking advantage by not following some rules, you might be able to sue them. Even if you only have a “personal blog”, chances are very high, that it’s not totally “private”. Some bloggers don’t want to have advertisements on their blog, but they participate in some affiliate programs and “just” place some links. But this is considered advertisement as well and must therefore be marked as such.

Disclaimer

As I am not a lawyer, the text of this blog post may not be completely legally founded. Therefore, this blog post will only give you a technical solution, which might not be enough legally. If you have any doubts, please consult a lawyer, you can verify your specific situation.

Read more →

Set a default message for the Jetpack Publicize module

Many of you probably share their new blog post on social media platform like Facebook, Google+, Twitter and others. I also do that, but I always post them manually with a nice custom message. But sometimes you need to have a more automated way to post to those platforms. Especially when you publish a lot of content and/or you are sharing on many platforms. Then you might want to use one of the many automatic sharing plugins around.

Social media postings with the Jetpack Publicize module

On a client’s website, we’ve used Jetpack for the sharing. Once you’ve activated the Publicize module and connected to some services, you will with a new setting in the “Publish” metabox. Clicking the “Edit Details” link, you will see a new textarea, where you can set the custom message to be used when shared. It looks like this:

Read more →

Redirect the main site of a WordPress multisite network

Before I start with my first “Project 52” blog post, I want to apologize to all my English readers for not being version active. If you don’t know German, you didn’t have too much to read on my blog in the past. It was acutaly only one real post in the last 4 years (and three posts with slides from my WordCamp talks) only. But this is going to change now!

For those of you who can read German, you might have read my advent calendar in 2015, followed by #projekt52 (a blog post every week of the year) and another advent calendar in 2016. As I was very unhappy with the fact, that I haven’t blogged in English too much, I’ve made a decision: I will blog every two weeks in English and on every other week, I’ll translate this blog post into German, starting today!

A multisite with no main site

This week, I finished the migration of a large client project into a new multisite installation. This multisite had the goal to have one sub-site per customer of our client. Every multisite needs a main top level domain. For this example, let’s say the name of the domain was abc-customers.com. The multisite was set up to use subdomains, while working on the draft of a new customer sub-site. So, we would have something like somecustomer.abc-customers.com and anothercustomer.abc-customers.com. Once the sites where ready to go live, the sub-site were switched to a domain or subdomain (e.g. abc.somecustomer.com and anothercustomer-platform.com). I was using the core WordPress functionality to map those domains and no additional domain mapping plugin.

Read more →

WordCamp Bilbao 2016 – A WordCamp not like many others

The last two days I attended the first WordCamp in Bilbao, Spain. It was not at all the first WordCamp outside of Germany for me but I still experienced some differences. The first thing was, that I attended only two Sessions. Or at least only two I understood. Because all the other sessions were given in Spanish or Basque, which I both don’t speak 🙂 And that brings me to the first thing I liked about this WordCamp.

A WordCamp truly for the local community

The idea of WordCamps started as something local. We tend to forget this as we attend big ones like WordCamp in London with 600+ and the WordCamp Europe this year with 2200+ attendees. So they are usually very international and it is pretty common that people travel to those WordCamps from all over Europe (or even worldwide).

I had the WordCamp in Bilbao on my list because I wanted to visit a very good friend in this town, while also attending the WordCamp. So as soon as they announced the date, which was not even two months before the WordCamp, I asked if there will be any English talks. Ibon Azkoitia, the lead organizer, reached out to me on Slack and told me that they were planning to have 80% local speakers and 20% foreign. And with “local” they really meant local speakers, so from Bilbao and around. And this also meant some talks in Basque, the local language, which is just a Spanish dialect but a very own language with no connection to any other language.

He then asked me to give him the title of the talk I was planning to give 🙂 I really didn’t mean to give a talk, I just wanted to visit the WordCamp as well as the city and my friend. But he asked so nicely, how could I have say no? 😉

Read more →

Slides from my session „Better Themes with Scalable Vector Graphics (SVG)“ at WordCamp Nuremberg 2016

My first WordCamp talk this year about a topic I personally find really important. I hope that you have all learned something new. At least the bit about CSS filters 🙂

Better Themes with SVG

I also added an “Online Image Map Generator” service to the sources, that looks quite nice. For the Color-Matrix CSS filters, I couldn’t find an easy generator.

UPDATE 11.06.2016: I’ve also givin this talk at WordCamp Bilbao. My slightly modfied slides can also be here: Better Themes with SVG – WordCamp Bilbao 2016.

Slides from my session “A Brief Word on Plugin Initialization” at WordCamp Berlin 2015

At my seventh and last WordCamp for this year, I was part of the organizing team and not only a regular attendee. But I still found the time to prepare a lightning talk. It was about a topic I see a lot while working on client websites. So here are the slides of the session:

A Brief Word on Plugin Initialization

I had the feeling, that some attendees got the point of my talk. If you know any more modern way to initialize a plugin or if you have any further questions, just leave me a comment.

Slides from my session “Beginner’s Guide to SASS” at WordCamp Norrköping 2015

Today I was able to held my session about SASS, which I first presented in June at the WordCamp Cologne, in English at the WordCamp Norrköping, Sweden. In this post you can find the slides I used including the sources and links. Feel free to view or download it:

Beginner´s Guide to SASS

If you have any additional questions after my session, just leave me a comment. I would also love to hear your feedback on it.

But now it’s time for the last session followed by a great afterparty and a Contributor Day tomorrow.

UPDATE 12.06.2016: I’ve also givin this talk at the WordCamp Bilbao Contributor Day. My slightly modfied slides can also be here: Beginner’s Guide to SASS – WordCamp Bilbao Contributor Day 2016.

Use WP-Minify and Jetpack together

Like probably the most of you, I use the Jetpack plugin from Automattic. Some time ago I also installed the plugin WP-Minify. This plugin enables you to combine all JavaScript and CSS files from the HEAD into a single file which can also be minified. In doing so you are saving your visitors a lot of requests. Also the total request size will decrease because of the minification. If you haven’t set up some caching headers fpr JavaScript and CSS, the plugin will also do this for you. Unfortunately, there are problems with the simultaneous use of Jetpack and WP-Minify. But the solution is quite simple.

Read more →