Medien & Phantastik > Multimedia - Software & Betriebsysteme

PHP-Hilfe?

(1/7) > >>

Blechpirat:
Moin.

Ich versuche gerade automatisch auf Mastodon einen Hinweis zu posten, wenn rsp-blogs.de einen neuen Beitrag veröffentlicht. 

Das klappt auch soweit - ich nutze dazu ein Plugin namens Share on Mastodon, denn rsp-blogs.de basiert auf Wordpress.

Im Default-Zustand erzeugt es Beiträge im Format


--- Code: ---Titel

Link
--- Ende Code ---
Beispiel: https://social.karsten-voigt.de/@rspblogs/109864459059950800

Der Verfasser des Blogs hat ein paar hilfreiche Anmerkungen gemacht, wie man das ändern kann: https://jan.boddez.net/wordpress/share-on-mastodon

Ich habe deshalb in meine functions.php folgendes aufgenommen:


--- Code: ---add_filter( 'share_on_mastodon_enabled', '__return_true' );

add_filter( 'share_on_mastodon_status', function( $status, $post ) {
  $status = wp_strip_all_tags( $post->post_content );
  $status .= "\n\n" . get_permalink( $post );
  return $status;
}, 10, 2 );
--- Ende Code ---

Jetzt klappt das insoweit, dass alle Beiträge bis 500 Zeichen auch auf Mastodon zu sehen sind. Beispiel: https://social.karsten-voigt.de/@rspblogs/109867222715399402

Was ich also brauche, ist eine Begrenzung der Zeichenzahl des Textes, der zu Mastodon gesendet wird. Kann mir da jemand helfen?



schneeland:
Grundsätzlich müsstest Du vermutlich irgendwo eine Substring-Funktion einbauen (Link zur Doku). Allerdings ist mir anhand des gezeigten Codes nicht ganz klar, wo eigentlich der Aufruf der Mastodon-API passiert, insofern kann ich jetzt nicht sicher sagen, wo genau das wäre.

Blechpirat:
Ich würde denken, dass der Inhalt von $status der Text ist, der hinterher bei Mastodon auftauchen soll. Dann wäre irgendwo hier


--- Code: ---$status = wp_strip_all_tags( $post->post_content );
--- Ende Code ---

die Zeichenbegrenzung einzuziehen - oder denke ich zu einfach?

schneeland:
Könnte tatsächlich funktionieren. Ich hatte beim ersten Lesen gedacht, $status wäre tatsächlich ein Status, aber das scheint tatsächlich der Text zu sein. Insofern könnte es reichen, da den substr drum zu basteln.
Ggf. musst Du noch schauen, ob Du die Länge des Permalinks bei der maximalen Zeichenzahl berücksichtigen musst (dann brauchst Du noch strlen). Falls nicht, kannst Du wahrscheinlich einfach hart auf 500 Zeichen (bzw. 497 Zeichen plus drei Punkte) kürzen.

Blechpirat:

--- Zitat von: schneeland am 15.02.2023 | 20:20 ---Könnte tatsächlich funktionieren. Ich hatte beim ersten Lesen gedacht, $status wäre tatsächlich ein Status, aber das scheint tatsächlich der Text zu sein. Insofern könnte es reichen, da den substr drum zu basteln.
Ggf. musst Du noch schauen, ob Du die Länge des Permalinks bei der maximalen Zeichenzahl berücksichtigen musst (dann brauchst Du noch strlen). Falls nicht, kannst Du wahrscheinlich einfach hart auf 500 Zeichen (bzw. 497 Zeichen plus drei Punkte) kürzen.

--- Ende Zitat ---

Sehr schön. Und jetzt kommt der Teil, den ich halt nicht kann... jemand müsste das in PHP für mich ausdrücken.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln