Support » Plugins » CPT & ACF – Übersicht definieren

  • Guten Morgen,

    ich hab mal eine (hoffentlich) einfache Frage zu den Plugins CPT & ACF.
    Folgende Situation:

    Über CPT hab ich den Custom Post Type „Projekt“ angelegt. Darin bearbeite ich nun Projekte und über ACF sind dieser Beitragsart Felder zugewiesen. Bspw. „Bereich“ (Kategorie), Titel, Frist und Beschreibung.

    Wenn ich nun das Register Projekt anklicke und auf die Übersicht gehe, wo alle bisherigen Beiträge erfasst sind – kann ich ja die Ansicht anpassen und mir Felder, wie Schlagworte, Autor und ähnliches ein- und ausblenden.

    Nun zur Frage:
    Wie kann denn die Felder von ACF in diese Ansicht integrieren?

    Nebenfrage:
    Wenn ich eine Kategorie in ACF anspreche und im Beitrag die Vorschau nutze, zeigt er mir die Kategorie-ID an und nicht den Titel der Kategorie – wie müsste ich denn da mit Gutenberg/Shortcode/Code reagieren, damit ich den Titel sehen kann?

    Grüße
    Forseti

Ansicht von 6 Antworten - 1 bis 6 (von insgesamt 6)
  • Wie kann denn die Felder von ACF in diese Ansicht integrieren?

    Dazu musst du einen Filter hinzufügen, z.B. als Code Snippet mit dem Plugin Code Snippets. Welche Schritte notwendig sind, wird in diesem Beitrag erklärt:

    https://code.tutsplus.com/articles/add-a-custom-column-in-posts-and-custom-post-types-admin-screen–wp-24934

    Wenn ich eine Kategorie in ACF anspreche und im Beitrag die Vorschau nutze, zeigt er mir die Kategorie-ID an und nicht den Titel der Kategorie – wie müsste ich denn da mit Gutenberg/Shortcode/Code reagieren, damit ich den Titel sehen kann?

    Hier gehen die Begriffe etwas durcheinander. Kategorien sind Sortierkriterien, also Taxonomien. Möchtest du für einen Custom Post Type eigene Sortierkriterien anlegen, musst du eine Custom Taxonomy erstellen.

    Custom Fields sind benutzerdefinierte Felder für Meta-Angaben zu Beiträgen (oder anderen Inhaltsytpen, Custom Post Types). Sie haben mit einer Taxonomie zunächst nichts zu tun, es sein denn du erstellst eine Verknüpfung zu einer Taxonomie. Da würde ich aber erst einmal hinterfragen, was das Ziel sein soll.

    „Wenn ich eine Kategorie in ACF anspreche …“ ist zunächst sehr vage und klingt eher nach einer ungeschickten Formulierung.

    Thread-Starter Forseti2003

    (@forseti2003)

    Danke für die schnelle Antwort, werde mir das mal ansehen.
    Zur zweiten Frage, das ist wirklich so gemeint, wie es da steht 😉

    Ich führ das mal näher aus. Wenn ich ein Feld in ACF haben das auf Kategorien verweist und ich dem Beitrag dann die Kategorie zuweise führe ich die Ausgabe im Beitrag so aus:

    Shortcode: [acf field=bereich]

    Angezeigt wird dann im Frontend: 1 und nicht der Titel „Allgemein“ – da ja die Kategorie als ID 1 hat. Ich will aber eigentlich den Titel anzeigen. Mit sortieren hat das ja in dem Fall nichts zu tun.

    Das ist eine recht kreative Verwendung des Taxonomy-Felds in ACF. 😉

    In der Dokumentation findest du den Code, mit dem du Name und Beschreibung der Taxonomy ausgeben kannst. Dieser Code lässt sich wieder in einen Shortcode umwandeln:

    <?php
    add_shortcode('acftax', 'pix_acftax_shortcode');
    function pix_acftax_shortcode(){
    	
    	$term = get_field( 'bereich' );
    	if( $terms ) {
    		$out .= '<ul>';
    		foreach( $terms as $term ){
    			$out .= '<a href="' . esc_url( get_term_link( $term ) ) . '">';
    			$out .= esc_html( $term->name );
    			$out .= '</a>';
    		}
    		$out .= '</ul>';
    	}
    
    	return $out;
    };
    

    Diesen Code packst du entweder in die functions.php deines Child-Themes (dann ohne <?php am Ende anhängen) oder erstellst mit dem Plugin Code Snippets ein Code-Snippet. Danach kannst du dann die Kategorien des Felds bereich mit Name und Link über den Shortcode [acftax] ausgeben.

    Thread-Starter Forseti2003

    (@forseti2003)

    Hätte jetzt nicht gedacht, dass diese Szenario so außergewöhnlich ist. Das ein Beitrag eine Taxonomie erhält und man diese im Beitrag mit ausgibt sehe ich auch bei vielen anderen Seiten – im Standard ist dies ja auch kein Problem. Lediglich wenn ich das über ACF mache.

    Ich hab den Code bei mir in die functions.php eingefügt und im Beitrag einen Shortcode aufgemacht, aber leider funktioniert es nicht. Es wird kein Wert zurückgegeben.

    Auch mit dem Link aus der ersten Antwort komm ich nicht wirklich weiter. Ich kann zwar nun im Adminscreen Columns anlegen – aber diese geben keine Werte zurück.

    Das ein Beitrag eine Taxonomie erhält und man diese im Beitrag mit ausgibt sehe ich auch bei vielen anderen Seiten …

    Ja klar, Kategorien und Schlagwörter (beides Taxonomien) auszugeben, ist kein Kunststück. Du verwendest aber ein eigenes Feld, also zusätzliche Meta-Angaben zum Beitrag, um damit eine Taxonomie auszugeben. Das ist wie gesagt freundlich ausgedrückt … sehr kreativ. 😉

    Ich hab den Code bei mir in die functions.php eingefügt und im Beitrag einen Shortcode aufgemacht, aber leider funktioniert es nicht. Es wird kein Wert zurückgegeben.

    Das kann jetzt ganz verschiedene Gründe haben:

    • Das Feld „Bereich“ wurde nicht richtig angelegt.
    • Das Feld wurde für den Beitrag nicht mit Werten gefüllt.
    • Der Code wurde fehlerhaft übernommen.
    • Im Code selber ist ein Fehler.

    Wir können hier nur Hilfe zur Selbsthilfe anbieten. Der Code alleine hat mich schon soviel meiner freien Zeit gekostet, dass das einfach den Rahmen sprengt. Lies dich ein, die Links dazu habe ich dir geliefert.

    Auch mit dem Link aus der ersten Antwort komm ich nicht wirklich weiter. Ich kann zwar nun im Adminscreen Columns anlegen – aber diese geben keine Werte zurück.

    Das ist so vage, dass ich dir kaum weiterhelfen kann.
    Für eine schrittweise Anleitung fehlt mir einfach die Zeit.

    Schau mal, ob dir dazu dieser Beitrag weiterhilft. Da wird der Vorgang in wenigen Zeilen recht gut beschrieben:

    https://pluginrepublic.com/add-acf-fields-to-admin-columns/

    Thread-Starter Forseti2003

    (@forseti2003)

    Dennoch vielen Dank für Deine Mühen bisher mir ein wenig auf die Sprünge zu helfen. Zumindest die Hauptfrage ist nun gelöst. Mit folgendem Code hat das dann funktioniert:

    // Add the table heading
    function projekt_columns_head($defaults) {
        $defaults['projekttitel'] = 'Projekttitel';
        return $defaults;
    }
    
    // Add the column
    function projekt_columns_content($column_name, $post_ID) {
        if ($column_name == 'projekttitel') {
            echo get_field('projekttitel', $post_ID);
        }
    }
    
    add_filter('manage_forderprojekte_posts_columns', 'projekt_columns_head');
    add_action('manage_forderprojekte_posts_custom_column', 'projekt_columns_content', 10, 2);
    

    Jetzt mach ich mich mal weiter auf die Suche nach der Sache mit der Kategorie und warum der Namen da noch rumzickt 😉

    • Diese Antwort wurde geändert vor 4 Jahren, 2 Monaten von Bego Mario Garde. Grund: Bitte Code-Formatierung nutzen
Ansicht von 6 Antworten - 1 bis 6 (von insgesamt 6)
  • Das Thema „CPT & ACF – Übersicht definieren“ ist für neue Antworten geschlossen.