web-dev-qa-db-ja.com

特定のカスタム投稿タイプの投稿タイトルに分類用語をコピーする

ユーザーがフロントエンドから投稿を作成できるようにするためにGravity Formsを使用しています。

しかし、私が構築しているこのサイトが機能する方法では、特定のPost_Typeは基本的に単なる "Data"投稿です。特定の分類法があり、その用語は実際にはデータセットの「タイトル」です。

Gravityフォームの "Title"フィールドを隠す方法をすでに考え出していますが、それをフォームに表示したままにします(何らかの理由で、 "Post_Type"と "Post Status"をGUIの[Title]フィールドに固定します。だから私はそれを常に隠すことを強制するための条件付きロジックをオーバーロードしました。

特定の[分類法]の[期間]値を、特定の[Post_Type]の[タイトル]フィールドに常にコピーするようなフィルタを作成したいと思います。

これを達成する方法について私が得ることができるどんなアドバイスでも素晴らしいでしょう!前もって感謝します!

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

OK、下記の@Manny Fleurmond、およびこの記事のコードを使用してください。 Title_save_pre - 確かに知っている単純な問題です

思いついた

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');

これは実際には、分類からの投稿に投稿のタイトルを保存しています。しかし、それはそれも同様にパーマリンクにそれを引っ張っていない、私のパーマリンクはちょうどポストID番号です。私がこれを自分で解決することができるかどうか見ますが、どんな助けでも評価されるでしょう!

3
Sam K

さて、私は本質的に投稿されたもの(実際にはうまくいきませんでした)といくつかの追加の研究を使って私自身の答えを思い付いたので、私はある種の追加の質問を追加したとしても、この質問を閉じます。

OK、下記の@Manny Fleurmond、およびこの投稿からのコードを使用してください。Title_save_pre - 確かに知っている簡単な問題

思いついた

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');

これは実際には、分類からの投稿に投稿のタイトルを保存しています。

1
Sam K

解決策をまとめました。それがあなたが必要とするものであるかどうか私に知らせてください:

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;
}

基本的に、私はタイトルがどんな投稿タイプであるかをチェックするタイトルのためのフィルタを使用しています。それが正しい種類である場合、タイトルはその投稿に関連する分類の最初の用語に置き換えられます。

何かが明らかでないなら私に質問をしてください!

1
Manny Fleurmond