it-swarm.com.de

Kopieren Sie einen Taxonomiebegriff in den Beitragstitel für einen bestimmten benutzerdefinierten Beitragstyp

Ich verwende Gravity Forms, um Benutzern das Erstellen von Beiträgen über das Front-End zu ermöglichen.

Wie auch immer, die Art und Weise, wie diese Site, die ich baue, funktionieren wird, ist ein bestimmter Post_Type im Wesentlichen nur ein "Daten" -Post. Es gibt eine bestimmte Taxonomie, deren Begriffe eigentlich der "Titel" des Datensatzes sind.

Ich habe bereits eine Möglichkeit gefunden, das Feld "Titel" in Gravity-Formularen auszublenden, habe es aber immer noch im Formular vorhanden (aus irgendeinem Grund sperren sie "Post_Type" und "Post Status" im Feld "Titel" in der GUI. Ich habe die bedingte Logik überladen, um zu erzwingen, dass sie sich immer versteckt.

Ich möchte einen Filter erstellen, der immer den Wert [Term] für eine bestimmte [Taxonomie] in das Feld [Title] einer bestimmten [Post_Type] kopiert.

Jeder Rat, den ich dazu bekommen könnte, wäre großartig! Danke im Voraus!

================================================ ============

OK, mit dem Code von @Manny Fleurmond unten und aus diesem Beitrag: Title_save_pre - Einfaches Problem, das du sicher kennst

Ich hatte die Idee dass

function taxonomy_title_rename($title) {
    global $post;
    $type = get_post_type($post->ID);
    if ($type== 'CUSTOM_POST_TYPE') {
            if($post->post_type === 'CUSTOM_POST_TYPE') {
        $terms = wp_get_object_terms($post->ID, 'MY_TAXONOMY');
        if(!is_wp_error($terms) && !empty($terms)) {
            $title = $terms[0]->name;
        }
        }
    return $title;
}
     else if ($type != 'CUSTOM_POST_TYPE') {
       return $title;
    }
    }
    add_filter ('title_save_pre','taxonomy_title_rename');

Dies speichert tatsächlich den Post-Titel des Posts aus der Taxonomie. Allerdings wird es dann auch nicht in den Permalink gezogen, mein Permalink ist nur die Post-ID-Nummer. Mal sehen, ob ich das alleine lösen kann, aber für jede Hilfe wäre ich dankbar!

3
Sam K

Nun, da ich im Grunde genommen meine eigene Antwort mit dem, was gepostet wurde (was nicht wirklich funktionierte) und einigen zusätzlichen Nachforschungen gefunden habe, werde ich diese Frage schließen, obwohl ich irgendwie eine zusätzliche Frage hinzugefügt habe.

OK, mit dem Code von @Manny Fleurmond unten und aus diesem Beitrag: Title_save_pre - Einfaches Problem, das Sie sicher wissen

Ich hatte die Idee dass

function taxonomy_title_rename($title) {
    global $post;
    $type = get_post_type($post->ID);
    if ($type== 'CUSTOM_POST_TYPE') {
            if($post->post_type === 'CUSTOM_POST_TYPE') {
        $terms = wp_get_object_terms($post->ID, 'MY_TAXONOMY');
        if(!is_wp_error($terms) && !empty($terms)) {
            $title = $terms[0]->name;
        }
        }
    return $title;
}
     else if ($type != 'CUSTOM_POST_TYPE') {
       return $title;
    }
    }
    add_filter ('title_save_pre','taxonomy_title_rename');

Dies speichert tatsächlich den Post-Titel des Posts aus der Taxonomie.

1
Sam K

Ich habe eine Lösung zusammengestellt. Lassen Sie mich wissen, ob es das ist, was Sie brauchen:

add_filter('the_title','term_filter',10,2);
function term_filter($title, $post) {
    $post = get_post($post) ;
    if($post->post_type === 'special_post_type') {
        $terms = wp_get_object_terms($post->ID, 'taxonomy');
        if(!is_wp_error($terms) && !empty($terms)) {
            $title = $terms[0]->name;
        }
    }
    return $title;
}

Grundsätzlich verwende ich einen Filter für den Titel, der überprüft, von welchem ​​Beitragstyp der Titel stammt. Wenn es sich um den richtigen Typ handelt, wird der Titel durch den ersten Begriff Ihrer Taxonomie ersetzt, der mit diesem Beitrag verbunden ist.

Stellen Sie mir Fragen, wenn etwas nicht klar ist!

1
Manny Fleurmond