Überprüfen ob Post public/private ist

  • Hallo zusammen!

    Ich möchte mit PHP überprüfen, ob ein Post public oder private ist. Public ist er dann, wenn er nicht nur für Subscribers, Contributors etc. freigegeben ist. Andernfalls ist er private. Ich weiss, mit dem Passwort-Schutz wäre es einfach, funktioniert in meinem Fall aber nicht.

    Ungefähres Konstrukt:

    if(Post == only for subscribers or contributors...) {
    ...
    } else {
    ...
    }

    Hat jemand ein Idee oder kenne eine WP-Funktion, mit der sich das überprüfen lässt?

    Bin um jede Hilfe dankbar!

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Du könntest es mal so probieren:

    PHP
    if ($post->post_status == 'private') {

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • Als Privat gekennzeichnete Artikel können ja nicht Public sein :!:
    Und warum geht der Passwortschutz nicht?
    Vielleicht schreibst du mal was du vorhast und wo du hin willst.

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • Ich habe das Plugin "User Access Manager" installiert. Damit habe ich zwei Rollen kreiert. Grundsätzlich hat jeder auf die Posts Zugriff. Aber bei einigen ist der Zugriff auf diese zwei Rollen eingeschränkt. Das funktioniert auch super. Nun müsste ich aber einen FB-Button hinzufügen, der nur für public Posts ist. Ich bin mir aber nicht im klaren, wie ich das innerhalb des Posts herausfinde, ob das jetzt nun ein public oder private Post bist.

    Ich verwende keinen Passwortschutz weil die User aus dem AD kommen, die haben ihre eigenen Passwörter.

  • Eine für mich nicht ganz passende Lösung habe ich gefunden: Icht setzte den Post auf Private, dann überprüfe ich wie es maxe vorgeschlagen hat, das klappt auch super.

    Was aber die Idee wäre: Ich prüfe, ob der Post nur für Subscribers/Contributors freigegeben ist oder auch für andere. Hat da noch jemand eine Idee?

  • okay, dann solltest du dir mal current_user_can() anschauen: http://codex.wordpress.org/Function_Refer…urrent_user_can
    und hier die Rollen: http://codex.wordpress.org/Roles_and_Capabilities

    vielleicht sowas in der Art (auf die schnelle als Bsp.), wären dann nur für Subscribers/Contributors:

    PHP
    if (!current_user_can('publish_posts') && current_user_can('read')) {

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!