{"id":21162,"date":"2021-01-29T11:46:00","date_gmt":"2021-01-29T10:46:00","guid":{"rendered":"https:\/\/notiz.blog\/?p=21162"},"modified":"2022-03-20T15:25:38","modified_gmt":"2022-03-20T14:25:38","slug":"inventur","status":"publish","type":"post","link":"https:\/\/notiz.blog\/2021\/01\/29\/inventur\/","title":{"rendered":"Inventur"},"content":{"rendered":"\n<p>Mein erstes WordPress Plugin hab ich vor mehr als <a href=\"https:\/\/plugins.trac.wordpress.org\/browser\/simple-cocomments\/trunk\/simple_coco.php?rev=9246\" data-type=\"URL\" data-id=\"https:\/\/plugins.trac.wordpress.org\/browser\/simple-cocomments\/trunk\/simple_coco.php?rev=9246\">14 Jahren ver\u00f6ffentlicht<\/a> und \u00fcber die Jahre sind <a href=\"https:\/\/profiles.wordpress.org\/pfefferle\/#content-plugins\" data-type=\"URL\" data-id=\"https:\/\/profiles.wordpress.org\/pfefferle\/#content-plugins\">eine ganze Menge, mehr oder weniger erfolgreiche, Plugins<\/a> dazu gekommen&#8230; Zeit f\u00fcr eine Inventur \ud83d\ude42<\/p>\n\n\n\n<p>Viele der Plugins schreibe ich in erster Linie f\u00fcr mich selbst (<a href=\"https:\/\/indieweb.org\/selfdogfood\" data-type=\"URL\" data-id=\"https:\/\/indieweb.org\/selfdogfood\">eat your own dogfood<\/a>), weshalb ich in den wenigesten F\u00e4llen \u00fcber die Plugins spreche oder sie bewerbe. Das, in Verbindung mit meinen eher sp\u00e4rlichen Beschreibungen, sorgt oft f\u00fcr eher zweistellige, maximal dreistellige Download-Zahlen. Wo die Zahlen h\u00f6her sind, habe ich das Plugin meistens von Anderen \u00fcbernommen (um die Weiterentwicklung zu gew\u00e4hrleisten) oder ich bin einfach &#8222;nur&#8220; Contributor.<\/p>\n\n\n\n<p>Aber Schluss mit der falschen Bescheidenheit!<\/p>\n\n\n\n<p>Selbst wenn ich die Plugins f\u00fcr mich baue, ist die Motivation nat\u00fcrlich gr\u00f6\u00dfer, wenn sie auch von anderen benutzt werden. Also m\u00f6chte ich euch hier ein paar meiner Plugins vorstellen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">ActivityPub<\/h2>\n\n\n\n<p><a href=\"https:\/\/www.w3.org\/TR\/activitypub\/\" data-type=\"URL\" data-id=\"https:\/\/www.w3.org\/TR\/activitypub\/\">ActivityPub<\/a> ist ein, vom <a href=\"https:\/\/www.w3.org\/\" data-type=\"URL\" data-id=\"https:\/\/www.w3.org\/\">W3C<\/a> ver\u00f6ffentlichtes, offenes, dezentrales Protokoll f\u00fcr soziale Netzwerke.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>The ActivityPub protocol is a decentralized social networking protocol based upon the [<a href=\"https:\/\/www.w3.org\/TR\/activitypub\/#bib-ActivityStreams\">ActivityStreams<\/a>] 2.0 data format. It provides a client to server API for creating, updating and deleting content, as well as a federated server to server API for delivering notifications and content.<\/p><cite>https:\/\/www.w3.org\/TR\/activitypub\/<\/cite><\/blockquote>\n\n\n\n<figure class=\"wp-block-image alignwide size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"765\" height=\"360\" src=\"https:\/\/notiz.blog\/wp-content\/uploads\/2019\/01\/activitypub-flow.png\" alt=\"Schaubild welches die Funktionsweise von ActivityPub zeigt\" class=\"wp-image-17848\" srcset=\"https:\/\/notiz.blog\/wp-content\/uploads\/2019\/01\/activitypub-flow.png 765w, https:\/\/notiz.blog\/wp-content\/uploads\/2019\/01\/activitypub-flow-700x329.png 700w\" sizes=\"auto, (max-width: 765px) 100vw, 765px\" \/><\/figure>\n\n\n\n<p>Es erm\u00f6glicht das dezentrale kommunizieren \u00fcber Text, Bild, Video und Audio \u00fcber ein simples Inbox\/Outbox Prinzip.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">WebFinger Plugin<\/h3>\n\n\n\n<p><a href=\"https:\/\/webfinger.net\/\" data-type=\"URL\" data-id=\"https:\/\/webfinger.net\/\">WebFinger<\/a> ist kein fester Bestandteil von ActivityPub, wird aber von allen gro\u00dfen Netzwerken unterst\u00fctzt und von Mastodon sogar verlangt. WebFinger ist eine Art Meta-Data System f\u00fcr alle m\u00f6glichen URIs. Der g\u00e4ngige Identifier im Fediverse ist <code>@username@domain.tld<\/code>, das Plugin erlaubt aber auch die Author URL oder die Instant-Messaging Accounts eines Users, wenn diese unter der gleichen Domain erreichbar sind.<\/p>\n\n\n\n<p>Mein Identifier ist Beispielsweise <code>pfefferle@notiz.blog<\/code> und die Meta-Daten k\u00f6nnen \u00fcber folgenden API-Endpunkt abgerufen werden: <a href=\"https:\/\/notiz.blog\/.well-known\/webfinger?resource=acct%3Apfefferle%40notiz.blog\">https:\/\/notiz.blog\/.well-known\/webfinger?resource=acct%3Apfefferle%40notiz.blog<\/a><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/wordpress.org\/plugins\/webfinger\/\" data-type=\"URL\" data-id=\"https:\/\/wordpress.org\/plugins\/webfinger\/\">WebFinger auf WordPress.org<\/a><\/li><li><a href=\"https:\/\/github.com\/pfefferle\/wordpress-webfinger\" data-type=\"URL\" data-id=\"https:\/\/github.com\/pfefferle\/wordpress-webfinger\">WebFinger auf GitHub<\/a><\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">NodeInfo Plugin<\/h3>\n\n\n\n<p><a href=\"https:\/\/nodeinfo.diaspora.software\/\" data-type=\"URL\" data-id=\"https:\/\/nodeinfo.diaspora.software\/\">NodeInfo<\/a> (<a href=\"https:\/\/github.com\/jaywink\/nodeinfo2\" type=\"URL\" id=\"https:\/\/git.feneas.org\/jaywink\/nodeinfo2\">2<\/a>) ist auch kein fester Bestandteil von ActivityPub, wird aber auch von den Meisten Netzwerken unterst\u00fctzt. NodeInfo stellt, wie der Name schon sagt, Infos \u00fcber einen &#8222;Node&#8220; (Server) bereit. Dank NodeInfo gibt es eine ganze Reihe an Statistik-Seiten wie <a href=\"https:\/\/the-federation.info\" data-type=\"URL\" data-id=\"https:\/\/the-federation.info\">the-federation.info<\/a>, die bei der Auswahl der <strong>richtigen<\/strong> Plattform bzw. des <strong>richtigen<\/strong> Servers helfen.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/wordpress.org\/plugins\/nodeinfo\/\" data-type=\"URL\" data-id=\"https:\/\/wordpress.org\/plugins\/nodeinfo\/\">NodeInfo auf WordPress.org<\/a><\/li><li><a href=\"https:\/\/github.com\/pfefferle\/wordpress-nodeinfo\" data-type=\"URL\" data-id=\"https:\/\/github.com\/pfefferle\/wordpress-nodeinfo\">NodeInfo auf GitHub<\/a><\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">ActivityPub Plugin<\/h3>\n\n\n\n<p>Das eigentliche ActivityPub Plugin macht WordPress zu einem (kleinen) Teil des <a href=\"https:\/\/en.wikipedia.org\/wiki\/Fediverse\" data-type=\"URL\" data-id=\"https:\/\/en.wikipedia.org\/wiki\/Fediverse\">Fediverse<\/a>. User von <a href=\"https:\/\/notiz.blog\/2020\/12\/31\/activitypub-fuer-wordpress\/\" data-type=\"URL\" data-id=\"https:\/\/notiz.blog\/2020\/12\/31\/activitypub-fuer-wordpress\/\">Mastodon, Pleroma, Friendi.ca oder Pixelfed<\/a> k\u00f6nnen dem Blog &#8222;folgen&#8220; und sehen ab dann alle neuen Blog-Posts in ihrer Timeline und k\u00f6nnen diese kommentieren. Das Plugin ist immernoch in einem fr\u00fchen Stadium und bekommt sicherlich noch das ein oder andere Feature, im Fokus soll aber das Bloggen stehen. Wer ein vollwertiges, dezentrales, soziales Netzwerk m\u00f6chte, sollte sich erstmal f\u00fcr eine der oben genannten Plattformen entscheiden.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/wordpress.org\/plugins\/activitypub\/\" data-type=\"URL\" data-id=\"https:\/\/wordpress.org\/plugins\/activitypub\/\">ActivityPub auf WordPress.org<\/a><\/li><li><a href=\"https:\/\/github.com\/pfefferle\/wordpress-activitypub\" data-type=\"URL\" data-id=\"https:\/\/github.com\/pfefferle\/wordpress-activitypub\">ActivityPub auf GitHub<\/a><\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">IndieWeb<\/h2>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignright size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/notiz.blog\/wp-content\/uploads\/2021\/02\/indie-wapuu-with-text-598x660-1.png\" alt=\"Der IndieWeb Wapuu\" class=\"wp-image-21192\" width=\"299\" height=\"330\"\/><\/figure><\/div>\n\n\n\n<p>Das <a href=\"https:\/\/indieweb.org\/\" data-type=\"URL\" data-id=\"https:\/\/indieweb.org\/\">IndieWeb<\/a> ist eine <a href=\"https:\/\/de.wikipedia.org\/wiki\/Graswurzelbewegung\" data-type=\"URL\" data-id=\"https:\/\/de.wikipedia.org\/wiki\/Graswurzelbewegung\">Grassroots<\/a> Bewegung mit dem Ziel, die eigene Webseite als zentralen Kommunikations-Hub zu nutzen.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>The <strong><dfn>IndieWeb<\/dfn><\/strong> is a community of individual personal websites, connected by simple standards, based on the <strong><a href=\"https:\/\/indieweb.org\/principles\">principles<\/a><\/strong> of <strong><a href=\"https:\/\/indieweb.org\/personal-domain\">owning your domain<\/a><\/strong>, using it as <strong><a href=\"https:\/\/indieweb.org\/How_to_set_up_web_sign-in_on_your_own_domain\">your primary identity<\/a><\/strong>, to <strong><a href=\"https:\/\/indieweb.org\/POSSE\">publish on your own site<\/a><\/strong> (optionally syndicate elsewhere), and <strong><a href=\"https:\/\/indieweb.org\/ownyourdata\">own your data<\/a><\/strong>.<\/p><cite>https:\/\/indieweb.org\/IndieWeb<\/cite><\/blockquote>\n\n\n\n<p>Mehr zum IndieWeb findet ihr <a href=\"https:\/\/notiz.blog\/2013\/06\/18\/the-rise-of-the-indieweb\/\" data-type=\"URL\" data-id=\"https:\/\/notiz.blog\/2013\/06\/18\/the-rise-of-the-indieweb\/\">hier<\/a> oder unter dem Tag &#8222;<a href=\"https:\/\/notiz.blog\/tag\/indieweb\/\" data-type=\"URL\" data-id=\"https:\/\/notiz.blog\/tag\/indieweb\/\">indieweb<\/a>&#8220; hier im Blog.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">IndieWeb Plugin<\/h3>\n\n\n\n<p>Das IndieWeb Plugin hat nahezu keine Funktionalit\u00e4t, es ist vielmehr eine Art <em>Installer<\/em> um die IndieWeb Plugins \u00fcber eine zentrale Stelle verwalten zu k\u00f6nnen. <\/p>\n\n\n\n<p>Es gibt immer wieder Kritik am Aufbau des Plugins, bzw. kommt immer wieder die Frage auf, warum das Plugin nicht einfach die komplette Funktionalit\u00e4t der einzelnen Plugins beinhaltet. Meine Antwort darauf: Das IndieWeb ist mehr eine Idee als eine Spezifikation und es gibt verschiedene M\u00f6glichkeiten diese Idee mit WordPress umzusetzen. F\u00fcr einen Usecase gibt es also oft verschiedene L\u00f6sungen, die von verschiedenen Personen entwickelt werden. Ein IndieWeb Plugin im Stil von ActivityPub ist in meinen Augen nicht m\u00f6glich. Ich lasse mich aber gerne eines besseren belehren \ud83d\ude09<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/wordpress.org\/plugins\/indieweb\/\" data-type=\"URL\" data-id=\"https:\/\/wordpress.org\/plugins\/indieweb\/\">IndieWeb auf WordPress.org<\/a><\/li><li><a href=\"https:\/\/github.com\/indieweb\/wordpress-indieweb\" data-type=\"URL\" data-id=\"https:\/\/github.com\/indieweb\/wordpress-indieweb\">IndieWeb auf GitHub<\/a><\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Webmention Plugin<\/h3>\n\n\n\n<p>Webmentions sind eine moderne Alternative zu Pingbacks und Trackbacks. Im Gegensatz zu der eher ungl\u00fccklichen Darstellung von Pingbacks (<code><code>[...] super, wie war nochmal der kontext, oder [...]<\/code><\/code>) versucht das IndieWeb (\u00fcber Webmentions und <a href=\"https:\/\/notiz.blog\/tag\/microformats\">Microformats<\/a>), den Sinn und die Art einer Verlinkung heraus zu bekommen um die Reaktion dann als Like, Bookmark oder vollwertiges Kommentar anzuzeigen.<\/p>\n\n\n\n<p>Das Webmention Plugin implementiert <strong>aktuell<\/strong> nur den Kommunikations-Teil, f\u00fcr das Interpretieren der Websemantiken ben\u00f6tigt ihr zus\u00e4tzlich das &#8222;Semantic Linkbacks&#8220; Plugin.<\/p>\n\n\n\n<p>Mehr \u00fcber Webmentions <a href=\"https:\/\/notiz.blog\/2013\/07\/08\/die-renaissance-des-pingbacks\/\" data-type=\"URL\" data-id=\"https:\/\/notiz.blog\/2013\/07\/08\/die-renaissance-des-pingbacks\/\">hier<\/a> oder unter dem &#8222;<a href=\"https:\/\/notiz.blog\/tag\/webmention\/\" data-type=\"URL\" data-id=\"https:\/\/notiz.blog\/tag\/webmention\/\">webmention<\/a>&#8220; Tag hier im Blog.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/wordpress.org\/plugins\/webmention\/\" data-type=\"URL\" data-id=\"https:\/\/wordpress.org\/plugins\/webmention\/\">Webmention auf WordPress.org<\/a><\/li><li><a href=\"https:\/\/github.com\/pfefferle\/wordpress-webmention\" data-type=\"URL\" data-id=\"https:\/\/github.com\/pfefferle\/wordpress-webmention\">Webmention auf GitHub<\/a><\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Semantic Linkbacks Plugin<\/h3>\n\n\n\n<p>Wie oben beschrieben sorgt das <em>Semantic Linkbacks<\/em> Plugin f\u00fcr die h\u00fcbsche Darstellung der Webmentions, Pingbacks und Trackbacks. Wir sind gerade dabei, die Funktionalit\u00e4t in das Webmention Plugin zu \u00fcbertragen, deshalb hat das Plugin aber nur noch tempor\u00e4r Bedeutung.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/wordpress.org\/plugins\/semantic-linkbacks\/\" data-type=\"URL\" data-id=\"https:\/\/wordpress.org\/plugins\/semantic-linkbacks\/\">Semantic Linkbacks auf WordPress.org<\/a><\/li><li><a href=\"https:\/\/github.com\/pfefferle\/wordpress-semantic-linkbacks\" data-type=\"URL\" data-id=\"https:\/\/github.com\/pfefferle\/wordpress-semantic-linkbacks\">Semantic Linkbacks auf GitHub<\/a><\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">WebSub Plugin<\/h3>\n\n\n\n<p><a href=\"https:\/\/www.w3.org\/TR\/websub\/\" data-type=\"URL\" data-id=\"https:\/\/www.w3.org\/TR\/websub\/\">WebSub<\/a> (formerly known as: <a href=\"https:\/\/notiz.blog\/2010\/01\/13\/are-we-there-yet\/\" data-type=\"URL\" data-id=\"https:\/\/notiz.blog\/2010\/01\/13\/are-we-there-yet\/\">PubSubHubbub<\/a>) ist ein simples PubSub Protokoll f\u00fcr das Web. Es wurde urspr\u00fcnglich entwickelt um updates von RSS und Atom Feeds in &#8222;echtzeit&#8220; zu konsumieren. Push statt pull. Die Restriktion auf RSS und Atom, wurde mit der aktuellen Version aufgehoben.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>WebSub provides a common mechanism for communication between publishers of any kind of Web content and their subscribers, based on HTTP web hooks. Subscription requests are relayed through hubs, which validate and verify the request. Hubs then distribute new and updated content to subscribers when it becomes available. WebSub was previously known as PubSubHubbub.<\/p><cite>https:\/\/www.w3.org\/TR\/websub\/<\/cite><\/blockquote>\n\n\n\n<p>\u00dcber das WebSub Plugin (urspr\u00fcnglich entwickelt von <a href=\"https:\/\/twitter.com\/joshfraz\" data-type=\"URL\" data-id=\"https:\/\/twitter.com\/joshfraz\">Josh Fraser<\/a>) kann man die Standard-Feeds von WordPress abonnieren. Das Plugin kann aber auch \u00fcber andere Plugins und Themes erweitert werden.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/wordpress.org\/plugins\/pubsubhubbub\/\" data-type=\"URL\" data-id=\"https:\/\/wordpress.org\/plugins\/pubsubhubbub\/\">WebSub auf WordPress.org<\/a><\/li><li><a href=\"https:\/\/github.com\/pubsubhubbub\/wordpress-pubsubhubbub\" data-type=\"URL\" data-id=\"https:\/\/github.com\/pubsubhubbub\/wordpress-pubsubhubbub\">WebSub auf GitHub<\/a><\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">MF2 Feed Plugin<\/h3>\n\n\n\n<p>Das IndieWeb setzt im, Gegensatz zum Fediverse, nicht auf APIs, sondern auf Semantisches HTML:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>The idea is rather than publishing something twice (repeating yourself) with (x)HTML for browsers and XML for aggregators &#8211; you simply publish once using (x)HTML and allow the tools to take care of the rest.<\/p><cite><a href=\"http:\/\/microformats.org\/wiki\/dry\">http:\/\/microformats.org\/wiki\/dry<\/a><\/cite><\/blockquote>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignleft size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"100\" height=\"100\" src=\"https:\/\/notiz.blog\/wp-content\/uploads\/2006\/11\/microformats.jpg\" alt=\"Das Microformats Logo\" class=\"wp-image-258\"\/><\/figure><\/div>\n\n\n\n<p>In einer Welt in der jeder <em>WordPress Theme Developer<\/em> Wert auf Microformats, Schema.org oder \u00c4hnliches achtet, funktioniert das Konzept super. Die Erfahrung zeigt aber, dass nur wenige Themes (<a href=\"https:\/\/notiz.blog\/2019\/08\/16\/the-first-microformats2-wp-theme\/\" data-type=\"URL\" data-id=\"https:\/\/notiz.blog\/2019\/08\/16\/the-first-microformats2-wp-theme\/\">seit fast 9 Jahren eigentlich sogar nur ein Theme<\/a>) im <a href=\"https:\/\/wordpress.org\/themes\/search\/microformats+v2\/\" data-type=\"URL\" data-id=\"https:\/\/wordpress.org\/themes\/search\/microformats+v2\/\">WordPress.org Repo Microformats2<\/a> unterst\u00fctzt.<\/p>\n\n\n\n<p>Ich habe viel herum experimentiert um Themes \u00fcber ein <a href=\"https:\/\/wordpress.org\/plugins\/wp-uf2\/\" data-type=\"URL\" data-id=\"https:\/\/wordpress.org\/plugins\/wp-uf2\/\">Plugin<\/a> mit den n\u00f6tigen Semantiken zu erweitern, was aber, durch Output Escaping, zu <a href=\"https:\/\/github.com\/indieweb\/wordpress-uf2\/issues\/41\" data-type=\"URL\" data-id=\"https:\/\/github.com\/indieweb\/wordpress-uf2\/issues\/41\">komischen Nebeneffekten<\/a> gef\u00fchrt hat (das alles aber nur der Vollst\u00e4ndigkeit halber, das Thema ist eigentlich einen ganzen Artikel wert).<\/p>\n\n\n\n<p>Letztendlich haben wir f\u00fcr WordPress ein Plugin gebaut, das einen Feed bereit stellt, der genau dem JSON Format entspricht, welches auch die Microformats Parser ausspucken. Das Webmention Plugin sucht also erst den pre-parsed Feed und versucht erst im zweiten Schritt, die Seite selbst zu parsen.<\/p>\n\n\n\n<p>Ihr versteht die Ironie? Microformats(2) sind geschaffen worden um XML\/JSON APIs abzul\u00f6sen und weil das bei WordPress nicht wirklich dolle funktioniert bieten wir die Infos als JSON API an! \ud83d\ude00<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/wordpress.org\/plugins\/mf2-feed\/\" data-type=\"URL\" data-id=\"https:\/\/wordpress.org\/plugins\/mf2-feed\/\">MF2 feed auf WordPress.org<\/a><\/li><li><a href=\"https:\/\/github.com\/indieweb\/wordpress-mf2-feed\" data-type=\"URL\" data-id=\"https:\/\/github.com\/indieweb\/wordpress-mf2-feed\">MF2 feed auf GitHub<\/a><\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Decisions, not Options<\/h2>\n\n\n\n<p>Ich bin ein Freund von kleinen Plugins die nur einen spezifischen Anwendungsfall abdecken und im besten Fall auch vollkommen ohne Settings aus kommen. Frei nach dem Motto von WordPress:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>When making decisions these are the users we consider first. A great example of this consideration is software options. Every time you give a user an option, you are asking them to make a decision. When a user doesn\u2019t care or understand the option this ultimately leads to frustration.<\/p><cite><a href=\"https:\/\/wordpress.org\/about\/philosophy\/#decisions\">https:\/\/wordpress.org\/about\/philosophy\/#decisions<\/a><\/cite><\/blockquote>\n\n\n\n<p>(<a href=\"https:\/\/wordpress.org\/support\/topic\/it-does-absolutely-nothing\/\" data-type=\"URL\" data-id=\"https:\/\/wordpress.org\/support\/topic\/it-does-absolutely-nothing\/\">Ironischerweise f\u00fchrt aber gerade das Fehlen von Settings oft f\u00fcr Verwirrung<\/a> \ud83d\ude09 )<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">OpenGraph Plugin<\/h3>\n\n\n\n<p>Das <a href=\"https:\/\/ogp.me\/\" data-type=\"URL\" data-id=\"https:\/\/ogp.me\/\">Open Graph Protokoll<\/a> wurde von Facebook entwickelt und hat einen \u00e4hnlichen Nutzen wie <a href=\"https:\/\/oembed.com\/\" data-type=\"URL\" data-id=\"https:\/\/oembed.com\/\">oEmbed<\/a>:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>The <a href=\"https:\/\/ogp.me\/\">Open Graph protocol<\/a> enables any web page to become a rich object in a social graph. For instance, this is used on Facebook to allow any web page to have the same functionality as any other object on Facebook.<\/p><cite><a href=\"https:\/\/ogp.me\">https:\/\/ogp.me<\/a><\/cite><\/blockquote>\n\n\n\n<p>Es wird aktuell von fast jedem gro\u00dfen Netzwerk oder fast jeder Messaging App benutzt und sorgt daf\u00fcr, dass ihr die kleinen h\u00fcbschen Vorschausnippets seht, wenn ihr einen Link mit euren Freunden teilt.<\/p>\n\n\n\n<p>Das OpenGraph Plugin wurde urspr\u00fcnglich von <a href=\"https:\/\/willnorris.com\/\" data-type=\"URL\" data-id=\"https:\/\/willnorris.com\/\">Will Norris<\/a> geschrieben und generiert alle notwendigen Meta-Tag Header. Keine Settings, keine Entscheidungen, aber mit wohl definierten Filtern zum erweitern.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/wordpress.org\/plugins\/opengraph\/\" data-type=\"URL\" data-id=\"https:\/\/wordpress.org\/plugins\/opengraph\/\">OpenGraph auf WordPress.org<\/a><\/li><li><a href=\"https:\/\/github.com\/willnorris\/wordpress-opengraph\" data-type=\"URL\" data-id=\"https:\/\/github.com\/willnorris\/wordpress-opengraph\">OpenGraph auf GitHub<\/a><\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Hum Plugin<\/h3>\n\n\n\n<p>Hum generiert sch\u00f6ne, semantische Short-URLs f\u00fcr WordPress Posts und Pages. Das Plugin ist urspr\u00fcnglich auch von Will Norris, integriert sich in die WordPress Core-Funktionen und kommt auch komplett ohne Settings aus.<\/p>\n\n\n\n<p>Hum basiert auf <a href=\"http:\/\/tantek.pbworks.com\/w\/page\/21743973\/Whistle\" data-type=\"URL\" data-id=\"http:\/\/tantek.pbworks.com\/w\/page\/21743973\/Whistle\">Whistle<\/a>&#8230;<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Whistle is an open source, <em><strong>algorithmically reversible, personal URL<\/strong><\/em> shortener.<\/p><cite><a href=\"http:\/\/tantek.pbworks.com\/w\/page\/21743973\/Whistle\">http:\/\/tantek.pbworks.com\/w\/page\/21743973\/Whistle<\/a><\/cite><\/blockquote>\n\n\n\n<p>&#8230;und <a href=\"http:\/\/tantek.pbworks.com\/w\/page\/19402946\/NewBase60\">New Base 60<\/a>&#8230;<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>A base 60 numbering system using only ASCII numbers and letters.<br>or<br>a side effect of building a personal URL shortener<\/p><cite><a href=\"http:\/\/tantek.pbworks.com\/w\/page\/19402946\/NewBase60\">http:\/\/tantek.pbworks.com\/w\/page\/19402946\/NewBase60<\/a><\/cite><\/blockquote>\n\n\n\n<p>&#8230;zwei Specs von <a href=\"https:\/\/tantek.com\/\" data-type=\"URL\" data-id=\"https:\/\/tantek.com\/\">Tantek \u00c7elik<\/a>.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/wordpress.org\/plugins\/hum\/\" data-type=\"URL\">Hum auf WordPress.org<\/a><\/li><li><a href=\"https:\/\/github.com\/willnorris\/wordpress-hum\" data-type=\"URL\" data-id=\"https:\/\/github.com\/willnorris\/wordpress-hum\">Hum auf GitHub<\/a><\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Open Search Document Plugin<\/h3>\n\n\n\n<p>Die OpenSearch Spezifikation bietet M\u00f6glichkeiten um die lokale Blog-Suche f\u00fcr Browser oder Suchmaschinen zug\u00e4nglich zu machen.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>OpenSearch is a collection of simple formats for the sharing of search results.<\/p><cite><a href=\"https:\/\/github.com\/dewitt\/opensearch\">https:\/\/github.com\/dewitt\/opensearch<\/a><\/cite><\/blockquote>\n\n\n\n<p>Es gibt Integrationen f\u00fcr alle bekannten Browser wie z.B. <a href=\"https:\/\/www.chromium.org\/tab-to-search\">Chrome<\/a>, <a href=\"https:\/\/developer.apple.com\/library\/archive\/releasenotes\/General\/WhatsNewInSafari\/Articles\/Safari_8_0.html\">Safari<\/a>, <a href=\"https:\/\/developer.mozilla.org\/de\/docs\/OpenSearch_Plugin_f%C3%BCr_Firefox_erstellen\">Firefox<\/a> und <a href=\"https:\/\/support.microsoft.com\/de-de\/microsoft-edge\/%C3%A4ndern-der-standardsuchmaschine-f863c519-5994-a8ed-6859-00fbc123b782\">Microsoft Edge<\/a>.<\/p>\n\n\n\n<p>Das Plugin wurde urspr\u00fcnglich von <a href=\"https:\/\/profiles.wordpress.org\/johnnoone\/\" data-type=\"URL\" data-id=\"https:\/\/profiles.wordpress.org\/johnnoone\/\">johnnoone<\/a> Entwickelt, es stellt eine XML Beschreibung der Suche und einen Endpunkt f\u00fcr Such-Vorschl\u00e4ge basierend auf Tags bereit.<\/p>\n\n\n\n<p>Das wars auch schon \ud83d\ude42<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/wordpress.org\/plugins\/open-search-document\/\" data-type=\"URL\" data-id=\"https:\/\/wordpress.org\/plugins\/open-search-document\/\">Open Search Document auf WordPress.org<\/a><\/li><li><a href=\"https:\/\/github.com\/pfefferle\/wordpress-open-search-document\" data-type=\"URL\" data-id=\"https:\/\/github.com\/pfefferle\/wordpress-open-search-document\"><\/a><a href=\"https:\/\/wordpress.org\/plugins\/open-search-document\/\" data-type=\"URL\" data-id=\"https:\/\/wordpress.org\/plugins\/open-search-document\/\">Open Search Document auf GitHub<\/a><\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Mehr?<\/h2>\n\n\n\n<p>Nat\u00fcrlich gibt es noch mehr, das w\u00fcrde aber den Rahmen sprengen. Ich nutze WordPress gerne um neue <a href=\"https:\/\/github.com\/pfefferle\/wordpress-twtxt\">Specs<\/a> und <a href=\"https:\/\/github.com\/pfefferle\/wordpress-hashtags\" data-type=\"URL\" data-id=\"https:\/\/github.com\/pfefferle\/wordpress-hashtags\">Ideen<\/a> auszuprobieren und daraus entstehen meist kleine Plugins, die es oft nicht wert sind, auf WordPress.org ver\u00f6ffentlichen zu werden.<\/p>\n\n\n\n<p>Ihr k\u00f6nnt aber gerne:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>einen Blick auf mein <a href=\"https:\/\/profiles.wordpress.org\/pfefferle\/\" data-type=\"URL\" data-id=\"https:\/\/profiles.wordpress.org\/pfefferle\/\">WordPress.org Profil<\/a> werfen<\/li><li>oder auf <a href=\"https:\/\/github.com\/search?q=topic%3Awordpress-plugin+user%3Apfefferle+org%3Aindieweb+org%3Aapml+org%3Adiso+org%3Apubsubhubbub&amp;type=Repositories&amp;ref=advsearch&amp;l=&amp;l=\" data-type=\"URL\" data-id=\"https:\/\/github.com\/search?q=topic%3Awordpress-plugin+user%3Apfefferle+org%3Aindieweb+org%3Aapml+org%3Adiso+org%3Apubsubhubbub&amp;type=Repositories&amp;ref=advsearch&amp;l=&amp;l=\">GitHub suchen<\/a>.<\/li><\/ul>\n\n\n\n<p>Ihr k\u00f6nnt fast alle Plugins auch bequem \u00fcber Composer installieren und updaten.<\/p>\n\n\n\n<p>Ich freue mich IMMER \u00fcber Hilfe, also <strong>feel free to contribute<\/strong>!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mein erstes WordPress Plugin hab ich vor mehr als 14 Jahren ver\u00f6ffentlicht und \u00fcber die Jahre sind eine ganze Menge, mehr oder weniger erfolgreiche, Plugins dazu gekommen&#8230; Zeit f\u00fcr eine Inventur \ud83d\ude42 Viele der Plugins schreibe ich in erster Linie f\u00fcr mich selbst (eat your own dogfood), weshalb ich in den wenigesten F\u00e4llen \u00fcber die [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":21163,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"webmentions_disabled_pings":false,"webmentions_disabled":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[2,946],"tags":[1153,1080,5171,992,181,57],"class_list":{"0":"post-21162","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-web","8":"category-wordpress","9":"tag-projekt26","10":"tag-activitypub","11":"tag-fediblog","12":"tag-indieweb","13":"tag-plugin","14":"tag-wordpress","15":"h-entry","16":"hentry"},"_links":{"self":[{"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/posts\/21162","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/comments?post=21162"}],"version-history":[{"count":5,"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/posts\/21162\/revisions"}],"predecessor-version":[{"id":21809,"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/posts\/21162\/revisions\/21809"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/media\/21163"}],"wp:attachment":[{"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/media?parent=21162"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/categories?post=21162"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/notiz.blog\/wp-api\/wp\/v2\/tags?post=21162"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}