{"id":8073,"date":"2023-08-14T14:22:17","date_gmt":"2023-08-14T21:22:17","guid":{"rendered":"https:\/\/membermouse.com\/?post_type=ht_kb&#038;p=8073"},"modified":"2025-01-07T09:55:29","modified_gmt":"2025-01-07T14:55:29","slug":"mitgliedmaus-wordpress-filter","status":"publish","type":"ht_kb","link":"https:\/\/membermouse.com\/de\/docs\/mitgliedmaus-wordpress-filter\/","title":{"rendered":"MemberMouse WordPress-Filter"},"content":{"rendered":"<p>Filter sind Funktionen, die WordPress an bestimmten Punkten der Ausf\u00fchrung durchl\u00e4uft, bevor eine Aktion mit den Daten durchgef\u00fchrt wird. MemberMouse definiert einen eigenen Satz von Filtern, die Sie verwenden k\u00f6nnen, um den Ablauf der Ausf\u00fchrung in MemberMouse zu steuern, bevor bestimmte Aktionen ausgef\u00fchrt werden.<\/p>\n\n\n\n<p>Hier ist ein einfaches Beispiel:<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>function customContentProtection($data)\n{\n     return true;\n}\nadd_filter('mm_bypass_content_protection', 'customContentProtection');\n<\/code><\/pre>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>In diesem Beispiel verwenden wir die&nbsp;<a href=\"http:\/\/codex.wordpress.org\/Function_Reference\/add_filter\" target=\"_blank\" rel=\"noreferrer noopener\"><em>add_filter()<\/em><\/a>&nbsp;Methode, um anzuzeigen, dass die&nbsp; <em>customContentProtection()<\/em>&nbsp;Methode sollte aufgerufen werden, wenn MemberMouse die&nbsp; <em>mm_Umgehung_des_Inhalt_Schutzes<\/em>&nbsp;Filter. <\/p>\n\n\n\n<p>Um mehr \u00fcber die Arbeit mit der WordPress Action API zu erfahren&nbsp;<a href=\"http:\/\/codex.wordpress.org\/Plugin_API\" target=\"_blank\" rel=\"noreferrer noopener\">diesen Artikel lesen<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">MemberMouse-Filter-Referenz<\/h2>\n\n\n\n<p>Nachfolgend finden Sie eine Liste aller MemberMouse-Filter, eine Beschreibung, wann sie ausgef\u00fchrt werden, und Informationen zu den Daten, die an eine mit dem Filter verkn\u00fcpfte Funktion \u00fcbergeben werden.<\/p>\n\n\n\n<div style=\"height:5px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Abrechnungs-Scan-Intervall<\/h3>\n\n\n\n<p><strong>mm_abrechnung_scan_intervall<\/strong><\/p>\n\n\n\n<p><em><mark style=\"background-color:#fcb900\" class=\"has-inline-color has-black-color\">MitgliedMaus 3.0+<\/mark><\/em><\/p>\n\n\n\n<p>MemberMouse f\u00fchrt periodisch eine <a href=\"https:\/\/developer.wordpress.org\/plugins\/cron\/\" target=\"_blank\" rel=\"noopener\" title=\"WP-Cron\">WP-Cron<\/a> Aufgabe, die nach Abonnements sucht, f\u00fcr die eine erneute Rechnungsstellung f\u00e4llig ist, und diese zur Verarbeitung durch das lokale Abrechnungssystem in die Warteschlange stellt. Standardm\u00e4\u00dfig werden die \u00dcberpr\u00fcfungen alle f\u00fcnfzehn Minuten durchgef\u00fchrt. Mit diesem Filter k\u00f6nnen Sie das Intervall zwischen den \u00dcberpr\u00fcfungen \u00e4ndern, was bei der Optimierung der Leistung Ihrer Website hilfreich sein kann. <\/p>\n\n\n\n<p>Das Plugin \u00fcbergibt ein einziges Argument <code>$scanIntervall<\/code> an Ihre Funktion, eine ganze Zahl, die die Standardanzahl von Minuten zwischen den Scans angibt. Ihre Funktion sollte eine ganze Zahl zur\u00fcckgeben, die die gew\u00fcnschten Minuten zwischen den \u00dcberpr\u00fcfungen angibt. Die folgende Funktion sucht z. B. alle f\u00fcnf Minuten nach Abonnements, die f\u00fcr die Rechnungsstellung bereit sind:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function customBillingScanIntervall($scanIntervall)\n{\n   return 5;\n}\nadd_filter(\"mm_billing_scan_interval\", \"customBillingScanInterval\", 10, 2);\n<\/code><\/pre>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Abonnement Mahnungsintervall<\/h3>\n\n\n\n<p><strong>mm_abrechnung_abonnement_mahnung_intervall<\/strong><\/p>\n\n\n\n<p><em><mark style=\"background-color:#fcb900\" class=\"has-inline-color has-black-color\">MitgliedMaus 3.0+<\/mark><\/em><\/p>\n\n\n\n<p>Wenn ein Abonnement nicht zum geplanten Termin abgerechnet wird, unternimmt MemberMouse drei weitere Versuche, die Zahlung einzuziehen. Mit diesem Filter k\u00f6nnen Sie das Intervall zwischen den Versuchen steuern.<\/p>\n\n\n\n<p>MemberMouse \u00fcbergibt zwei Argumente an Ihre Funktion. Das erste ist eine ganze Zahl <code>$failureIntervall<\/code>&nbsp;die die Standardanzahl von Tagen vor dem n\u00e4chsten Versuch darstellt. Die zweite ist eine ganze Zahl <code>$failureState<\/code>&nbsp;der den jeweiligen Status der fehlgeschlagenen Rechnungsstellung angibt. Derzeit gibt es drei Fehlerzust\u00e4nde: 2, 3 und 4, die den zweiten, dritten bzw. letzten Versuch, die Zahlung einzuziehen, darstellen.<\/p>\n\n\n\n<p>Ihre Funktion sollte eine ganze Zahl zur\u00fcckgeben, die die Anzahl der Tage angibt, die bis zum n\u00e4chsten Versuch vergehen sollen. Hier ist ein Beispiel, das die Standard-Mahnintervalle nachbildet:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function customDunningInterval($failureInterval, $failureState)\n{\n   switch ($failureState)\n   {\n      Fall 2:\n         return 2; \/\/ Erster Wiederholungsversuch, zwei Tage nach der ersten fehlgeschlagenen R\u00fcckbuchung\n      \n      case 3:\n         return 3; \/\/ Zweiter Wiederholungsversuch, drei Tage nach dem ersten Wiederholungsversuch\n      \n      Fall 4:\n         return 2; \/\/ Dritter Wiederholungsversuch, zwei Tage nach dem zweiten Wiederholungsversuch\n      \n      Standard:\n         return $failureInterval;\n   }\n}\nadd_filter(\"mm_billing_subscription_dunning_interval\", \"customDunningInterval\", 10, 2);<\/code><\/pre>\n\n\n\n<p>Um die Mahnungsintervalle anzupassen, k\u00f6nnen Sie einfach die in den drei Case-Anweisungen zur\u00fcckgegebenen Werte auf die gew\u00fcnschte L\u00e4nge in Tagen \u00e4ndern.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Zugang blockieren<\/h3>\n\n\n\n<p><strong>mm_block_access<\/strong><\/p>\n\n\n\n<p>Dieser Filter wird angewendet, nachdem MemberMouse festgestellt hat, dass der aktuelle Besucher Zugriff auf den Inhalt hat, und erm\u00f6glicht es Ihnen, den Zugriff auf gesch\u00fctzte Inhalte selektiv zu sperren.<\/p>\n\n\n\n<p>MemberMouse \u00fcbergibt einen booleschen Wert <code>$blockAccess<\/code> zu Ihrer Funktion hinzuf\u00fcgen, die angibt, ob der Zugriff auf den Inhalt standardm\u00e4\u00dfig blockiert wird. Ihre Funktion sollte einen booleschen Wert zur\u00fcckgeben, der angibt, ob MemberMouse den Zugriff auf den Inhalt blockieren sollte.<\/p>\n\n\n\n<p>Zum Beispiel, um allen Mitgliedern den Zugriff auf gesch\u00fctzte Inhalte zu verwehren:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function blockMemberAccess($blockAccess)\n{\n   return true;\n}\nadd_filter(\"mm_block_access\", \"blockMemberAccess\", 10, 2);\n<\/code><\/pre>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Umgehung des Inhaltsschutzes<\/h3>\n\n\n\n<p><strong>mm_Umgehung_des_Inhalt_Schutzes<\/strong><\/p>\n\n\n\n<p>Dieser Filter wird angewendet, nachdem MemberMouse festgestellt hat, dass der aktuelle Besucher keinen Zugriff auf den Inhalt hat, und erm\u00f6glicht es Ihnen, den Inhaltsschutz selektiv zu umgehen. <\/p>\n\n\n\n<p>MemberMouse \u00fcbergibt einen booleschen Wert <code>$allowAccess<\/code> zu Ihrer Funktion hinzuf\u00fcgen, um anzugeben, ob der Zugriff auf den Inhalt standardm\u00e4\u00dfig gew\u00e4hrt wird. Ihre Funktion sollte einen Booleschen Wert zur\u00fcckgeben, der angibt, ob MemberMouse den Zugriff auf den Inhalt erlauben soll.<\/p>\n\n\n\n<p>So k\u00f6nnen beispielsweise alle Mitglieder, denen das Recht zugewiesen wurde <em>Beitragende<\/em> Rollenzugriff auf alle gesch\u00fctzten Seiten und Beitr\u00e4ge: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function allowAccessForContributors($allowAccess)\n{\n    if (current_user_can(\"contributor\"))\n    {\n        return true;\n    }\n    sonst\n    {\n        return $allowAccess;\n    }\n}\nadd_filter(\"mm_bypass_content_protection\", \"allowAccessForContributors\", 10, 2);\n<\/code><\/pre>\n\n\n\n<p>Bitte beachten Sie, dass dieser Filter zwar den Zugang zu Seiten und Beitr\u00e4gen erm\u00f6glicht, die andernfalls unzug\u00e4nglich w\u00e4ren, dass er aber keinen Einfluss auf die Analyse von Decision SmartTags hat.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Anmeldung umleiten<\/h3>\n\n\n\n<p><strong>mm_login_redirect<\/strong><\/p>\n\n\n\n<p>Dieser Filter wird angewandt, bevor MemberMouse sein standardm\u00e4\u00dfiges Umleitungsverhalten f\u00fcr die Anmeldung ausf\u00fchrt, das lautet&nbsp;<a href=\"https:\/\/membermouse.com\/de\/docs\/einstellungen-der-mitglieder-homepage\/\" target=\"_blank\" rel=\"noreferrer noopener\">konfiguriert in den Einstellungen der Mitglieder-Homepage<\/a>. Geben Sie eine URL zur\u00fcck, um anzugeben, dass MemberMouse den Benutzer an diese URL weiterleiten soll. Geben Sie eine leere Zeichenkette zur\u00fcck, um anzugeben, dass MemberMouse seine eigenen internen Regeln verwenden soll, um zu bestimmen, wohin der Benutzer weitergeleitet werden soll.<\/p>\n\n\n\n<p>Das Objekt, das an Ihre Funktion \u00fcbergeben wird, enth\u00e4lt die URL, an die MemberMouse den Benutzer weiterleitet, wenn Sie keine \u00fcberschreibende URL zur\u00fcckgeben, sowie ein Benutzerobjekt mit Daten \u00fcber den angemeldeten Benutzer.<br>Wenn der Name des Objekts in Ihrer Funktion&nbsp;<code>$infoObj<\/code>&nbsp;dann greifen Sie wie folgt auf die beiden Datenelemente zu:<\/p>\n\n\n\n<div style=\"height:5px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>$infoObj-&gt;aktuelleUrl\n$infoObj-&gt;Benutzer<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Stripe Statement Deskriptor<\/h3>\n\n\n\n<p><strong>mm_stripe_billing_statement_descriptor<\/strong><\/p>\n\n\n\n<p>Wenn MemberMouse eine R\u00fcckbuchung veranlasst, werden verschiedene beschreibende Daten \u00fcber die Belastung gesendet. Der Abrechnungsdeskriptor wird dem Kunden auf seiner Kreditkartenrechnung angezeigt und ist auch in Stripe sichtbar. Mit diesem Filter k\u00f6nnen Sie den Abrechnungsdeskriptor f\u00fcr Abrechnungstransaktionen anpassen.<\/p>\n\n\n\n<p>Bitte beachten Sie, dass die maximale Gesamtl\u00e4nge des Anweisungsdeskriptors 22 Zeichen betr\u00e4gt und das Senden einer l\u00e4ngeren Zeichenfolge dazu f\u00fchrt, dass die Zahlung nicht verarbeitet werden kann. Au\u00dferdem k\u00f6nnen die von Ihnen gesendeten Daten abgeschnitten werden. Stripe erstellt schlie\u00dflich einen \"berechneten Abrechnungsdeskriptor\", indem es den von Ihnen gesendeten Deskriptor an den in der Option \"Verk\u00fcrzter Deskriptor\" angegebenen Deskriptor anh\u00e4ngt. <a href=\"https:\/\/dashboard.stripe.com\/settings\/public\" title=\"\">Stripe Dashboard \u00d6ffentliche Einstellungen<\/a>aber die maximale L\u00e4nge dieser berechneten Zeichenfolge betr\u00e4gt ebenfalls 22 Zeichen, und alles dar\u00fcber hinausgehende wird verworfen. <\/p>\n\n\n\n<p>Um die maximale L\u00e4nge des angezeigten Inhalts zu berechnen, verwenden Sie die folgende Formel:<\/p>\n\n\n\n<p><em>max. angezeigte L\u00e4nge = 22 - (L\u00e4nge des gek\u00fcrzten Deskriptors + 2)<\/em><\/p>\n\n\n\n<p>MemberMouse \u00fcbergibt zwei Parameter an Ihre Funktion. Der erste ist <code>$-Deskriptor<\/code> ist eine Zeichenkette, die die Informationen enth\u00e4lt, die MemberMouse sendet, wenn sie nicht ge\u00e4ndert wird. Die zweite ist <code>1TP4Bestellung<\/code> das ein Standardklassenobjekt ist, das MemberMouse-Bestelldaten enth\u00e4lt, die Sie bei der Konstruktion des Anweisungsdeskriptors verwenden k\u00f6nnen.&nbsp;<\/p>\n\n\n\n<p>Hier ist ein Beispiel:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>add_filter(\"mm_stripe_billing_statement_descriptor\", function($descriptor, $order)\n{\n\n   $descriptor = \"Bestellung #: \" . $order-&gt;Bestellnummer;\n   $maxLengthDescriptor = substr($descriptor,0,22);\n   R\u00fcckgabe $maxLengthDescriptor;\n}, 1, 2);<\/code><\/pre>\n\n\n\n<p>Wenn Ihr gek\u00fcrzter Deskriptor lautet <em>ABC<\/em> Ihre Kunden sollten so etwas auf ihren Kreditkartenabrechnungen sehen:<\/p>\n\n\n\n<p><em>ABC* Bestellung #: 10043<\/em><\/p>\n\n\n\n<p>Dieser Filter kann nur auf R\u00fccklastschriften wirken, nicht auf erste Zahlungen. <\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Stripe PaymentIntent Beschreibung<\/h3>\n\n\n\n<p><strong>mm_stripe_paymentintent_description<\/strong><\/p>\n\n\n\n<p>Ein weiterer Teil der Daten, die mit den R\u00fcckrechnungen an Stripe gesendet werden, ist die Beschreibung, die Sie mit diesem Filter anpassen k\u00f6nnen. Die Beschreibung ist eine der Spalten, die angezeigt wird, wenn Sie die Option <em>Zahlungen<\/em> in Stripe Dashboard. Die maximale L\u00e4nge dieses Feldes betr\u00e4gt 350 Zeichen.<\/p>\n\n\n\n<p>MemberMouse \u00fcbergibt zwei Parameter an Ihre Funktion. Der erste ist <code>$Beschreibung<\/code> ist eine Zeichenkette, die die Informationen enth\u00e4lt, die MemberMouse sendet, wenn sie nicht ge\u00e4ndert wird. Die zweite ist <code>1TP4Bestellung<\/code> das ein Standardklassenobjekt ist, das MemberMouse-Bestelldaten enth\u00e4lt, die Sie bei der Erstellung der Beschreibung verwenden k\u00f6nnen.&nbsp;<\/p>\n\n\n\n<p>Um dieses Feld zum Beispiel auf&nbsp;<em>Bestellung# 1234, Artikel: Digitale Mitgliedschaft&nbsp;<\/em>k\u00f6nnten Sie die folgende Funktion in Ihrem Plugin verwenden:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>add_filter('mm_stripe_paymentintent_description', function($description, $order)\n{\n   $description = \"Bestellung # \" . $order-&gt;Bestellnummer;\n   if (isset($order-&gt;BestellungProdukte) &amp;&amp; is_array($order-&gt;BestellungProdukte))\n   {\n      $description .= \", Artikel: \" . array_pop($order-&gt;orderProducts)-&gt;description;\n   }\n   return $description;\n}, 1, 2);<\/code><\/pre>\n\n\n\n<p>Dieser Filter kann nur auf Erstattungsrechnungen wirken, nicht auf erste Zahlungen. Um alle Daten zu sehen, auf die Sie auf der Seite <code>1TP4Bestellung<\/code> Objekt, sehen Sie dieses\u00a0<a href=\"https:\/\/storage.googleapis.com\/wpgcbucket\/wp\/2025\/01\/8bb79f95-oder-object-example-membermouse.txt\" target=\"_blank\" rel=\"noopener\" title=\"\">Musterauftragsobjekt<\/a>.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Standard-MemberMouse-Filter<\/h2>\n\n\n\n<p>Diese Filter sind im Plugin enthalten und k\u00f6nnen in Ihrem eigenen Code \u00fcberschrieben werden, indem Sie&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/codex.wordpress.org\/Function_Reference\/remove_filter\" target=\"_blank\">entfernen_filter<\/a>&nbsp;um Ihre eigenen verwandten Filter zu implementieren.<\/p>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Passwortst\u00e4rke-Pr\u00fcfer<\/h3>\n\n\n\n<p><strong>mm_password_strength_validator<\/strong><\/p>\n\n\n\n<p>Ab Version 2.2.9 unterst\u00fctzt MemberMouse die Hinzuf\u00fcgung eines benutzerdefinierten Passwort-Validierungsfilters. Dadurch kann das Kennwort auf der Grundlage benutzerdefinierter Anforderungen ausgewertet werden. Standardm\u00e4\u00dfig f\u00fcgt MemberMouse einen grundlegenden Filter hinzu, der sicherstellt, dass das Kennwort aus mindestens 8 Zeichen besteht. Entwickler haben die M\u00f6glichkeit, einen zus\u00e4tzlichen Filter hinzuzuf\u00fcgen, der zusammen mit dem Standardfilter angewendet wird, oder den Standardfilter zu entfernen und durch einen benutzerdefinierten Filter zu ersetzen.<\/p>\n\n\n\n<p>Das folgende Beispiel zeigt die Schritte zum Entfernen des Standardfilters und zum Ersetzen durch einen benutzerdefinierten Filter. Dieser kann in die Datei function.php des Themes eingef\u00fcgt werden, aber wir empfehlen, dass Sie, wenn Sie diesen Weg w\u00e4hlen, eine&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Child_Themes\" target=\"_blank\" rel=\"noreferrer noopener\">Kind-Thema<\/a>&nbsp;um zu vermeiden, dass Ihr Code bei einem Theme-Update verloren geht.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/Entfernen des Standardfilters\nremove_filter('mm_password_strength_validator',array('MM_UserHooks', \"passwordStrengthValidator\"));\n\n\/\/F\u00fcgen Sie einen Filter hinzu, der erzwingt, dass Kennw\u00f6rter mindestens 8 Zeichen lang sind und einen Gro\u00dfbuchstaben, eine Zahl und ein Sonderzeichen enthalten\nadd_filter('mm_password_strength_validator', function($passwordData)\n{\n   if (is_object($passwordData) &amp;&amp; isset($passwordData-&gt;data) &amp;&amp; !preg_match('\/^(?=.*[!@#$%^&amp;*-])(?=.*[0-9])(?=.*[A-Z]).{8,20}$\/', $passwordData-&gt;data))\n   {\n      $passwortDaten-&gt;Typ = \"Fehler\";\n      $passwordData-&gt;errors[] = \"Passwort muss einen Gro\u00dfbuchstaben, ein Sonderzeichen und eine Zahl enthalten\";\n   }\n   return $passwordData;\n}, 10, 1);<\/code><\/pre>","protected":false},"excerpt":{"rendered":"<p>Filter sind Funktionen, die WordPress an bestimmten Punkten der Ausf\u00fchrung durchl\u00e4uft, bevor es eine Aktion mit den Daten durchf\u00fchrt. MemberMouse definiert seinen eigenen Satz von Filtern, die Sie...<\/p>","protected":false},"author":21411,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"om_disable_all_campaigns":false,"_strive_editorial_status":"not-started","_strive_copy_of":0,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"ht-kb-category":[188],"ht-kb-tag":[],"class_list":["post-8073","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-mm-wp-hooks-filters"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/membermouse.com\/de\/wp-json\/wp\/v2\/ht-kb\/8073","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/membermouse.com\/de\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/membermouse.com\/de\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/membermouse.com\/de\/wp-json\/wp\/v2\/users\/21411"}],"replies":[{"embeddable":true,"href":"https:\/\/membermouse.com\/de\/wp-json\/wp\/v2\/comments?post=8073"}],"version-history":[{"count":1,"href":"https:\/\/membermouse.com\/de\/wp-json\/wp\/v2\/ht-kb\/8073\/revisions"}],"predecessor-version":[{"id":20432,"href":"https:\/\/membermouse.com\/de\/wp-json\/wp\/v2\/ht-kb\/8073\/revisions\/20432"}],"wp:attachment":[{"href":"https:\/\/membermouse.com\/de\/wp-json\/wp\/v2\/media?parent=8073"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/membermouse.com\/de\/wp-json\/wp\/v2\/ht-kb-category?post=8073"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/membermouse.com\/de\/wp-json\/wp\/v2\/ht-kb-tag?post=8073"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}