So legen Sie einen benutzerdefinierten Beitragstyp fest, der nicht im Frontend angezeigt wird

9

Ich verwende einen benutzerdefinierten Beitragstyp auf einer meiner Websites für Bild-Diashows. Ich habe öffentlich abfragbar auf false / off gesetzt, aber wenn Google meine Website crawlt, werden 404 Fehler für die URLs meiner Diashows angezeigt. Ich dachte, dass eine öffentliche Abfrage von Wordpress diese Front-End-URLs nicht erstellen würde.

Wie kann ich die Front-End-URLs und -Seiten für meinen benutzerdefinierten Beitragstyp vollständig deaktivieren?

BEARBEITEN

Durch das Hinzufügen public => false, has_archive => false, publicaly_queryable => false, und query_var => falseich habe erfolgreich loszuwerden, die 404 - Fehler in Google bekommen. Ich habe auch die von @Norcross bereitgestellte Funktion hinzugefügt.

dkmojo
quelle
Wie lautet Ihre URL?
s_ha_dum
Wie bearbeiten Sie die benutzerdefinierten Beitragstypen mit diesen Einstellungen? Öffentlich falsch bedeutet, dass ich es nicht in admin bearbeiten kann
Laurence Cope
1
Um im Admin zu bearbeiten sieht es so aus, als ob Sie public => true benötigen, dann haben Sie einen Tippfehler, um es im Frontend nicht sichtbar zu machen. Es sollte public_queryable sein
Laurence Cope
!!!! Beachtung !!! Es gibt einen Tippfehler, der "öffentlich_abfragbar" und nicht "öffentlich_abfragbar" sein sollte
Tofandel

Antworten:

6

Eine andere Möglichkeit wäre, eine 301-Umleitung für alle Diashow-CPTs festzulegen, die irgendwo umleiten sollen (wie auf der Startseite). Dies würde von Google aufgegriffen werden und auch sicherstellen, dass niemand versehentlich auf sie gelangt

function rkv_slideshow_redirect() {
    global $wp_query;

    // redirect from 'slideshow' CPT to home page
    if ( is_archive('CPT_NAME_HERE') || is_singular('CPT_NAME_HERE') ) :
        $url   = get_bloginfo('url');

        wp_redirect( esc_url_raw( $url ), 301 );
        exit();
    endif;
}

add_action ( 'template_redirect', 'rkv_slideshow_redirect', 1);
Norcross
quelle
Vielen Dank! Alle meine Diashow 404-Fehler in Google sind jetzt verschwunden. Ich habe public => false, has_archive => false und public_queryable => false hinzugefügt und sie werden nicht mehr als 404-Fehler angezeigt. Ich habe den von Ihnen angegebenen Code "nur für den Fall" zu meiner Datei functions.php hinzugefügt. Danke noch einmal!
dkmojo
2

Anscheinend zeigt Ihre Diashow , nicht WordPress, diese URLs. Ich gehe davon aus, dass die Bilder in der Diashow mit Links zu benutzerdefinierten Posts umhüllt werden, die Sie nicht möchten. Sie müssen die Diashow bearbeiten, damit dies nicht der Fall ist.

s_ha_dum
quelle
Die Diashow verwendet wp_get_attachment_image_src, um die Bilder in einer Schleife abzurufen, sodass kein Link zum benutzerdefinierten Beitragstyp der Diashow vorhanden ist. Ich habe gerade den Parameter "public" in meiner benutzerdefinierten Post-Type-Methode auf false gesetzt. Ich werde sehen, ob das hilft. Danke für deinen Beitrag!
dkmojo
1

Eine Änderung Ihrer ursprünglichen Frage sollten Sie hinzufügen

'exclude_from_search' => true,

Wenn dies nicht hinzugefügt wird, wird das CPT in den Suchergebnissen angezeigt.

JoseLazo
quelle
developer.wordpress.org/reference/functions/register_post_type : exclude_from_search(bool) Gibt an, ob Beiträge mit diesem Beitragstyp aus den Front-End-Suchergebnissen ausgeschlossen werden sollen. Standard ist der entgegengesetzte Wert von $ public.
Erenor Paz