My Calendar
scheint ganz gut zu funktionieren und ohne nag-screens
um externe user hinzuzufügen, die kalendereinträge machen können, ohne sonstige schreibrechte zu haben, mit dem plugin „Members“ eine neue rolle „Veranstalter“ oä hinzufügen. dann in den plugin settings von „My Calendar“ dieser rolle editier-rechte im kalender geben. wenn man der rolle upload-rechte gibt, können die user bilder in die events einfügen.
um einen neuen user hinzuzufügen, der events erstellen kann, macht man einen neuen user und gibt ihm die obige „Veranstalter“-rolle.
unter wp My Calender -> Settings -> Display einstellen, was angezeigt wird, wenn man ein event im kalender anklickt. zumindest „Description“ ist empfehlenswert
aber: kann kein rss/atom. nur etwas merkwürdigen versteckten api-link: https://docs.joedolson.com/my-calendar/my-calendar-api/ (irgendein json-format, ical, csv)
doch: rss feed erscheint unter http:///?post_type=mc-events&feed=rss2
rss-feed für kalender discoverable machen:
- WPCode installieren
- neues snippet erstellen:
add_action( 'wp_head', function() {
if ( is_page( 'my-calendar' ) || is_post_type_archive( 'mc-events' ) ) { // ← passe 'my-calendar' an deinen Seiten-Slug/ID an oder entferne die if-Bedingung
//$feed_url = get_post_type_archive_feed_link('mc-events'); // gibt null string zurück, scheinbar nicht registriert oder so
//$feed_url = "/index.php/feed/?post_type=mc-events"; // url manuell anpassen
// $feed_url = home_url( '/?post_type=mc-events&feed=rss2' );
$feed_url = add_query_arg( array('post_type' => 'mc-events', 'feed' => 'rss2'), home_url( '/' ) );
$title = esc_attr( get_bloginfo( 'name' ) . ' – Veranstaltungen RSS' );
echo '<link rel="alternate" type="application/rss+xml" title="' . $title . '" href="' . $feed_url . '" />' . "\n";
}
});
- snippet anpassen
- snippet aktivieren
- rss-feed sollte auf der kalenderseite im <head> auftauchen
kalender-anzeige für mobile geräte einstellen:
My Calendar -> Settings -> Display -> Mobile View: „Switch to Mini Calendar“ ist empfehlenswert
es bräuchte noch ne möglichkeit dass user nur entwürfe reinstellen und die dann vom admin freigeschaltet werden