2つのカスタム投稿タイプを1つの管理ページにマージしますか?


9

4つのカスタム投稿タイプを使用してサイトを構築しています。クライアント/管理者の作業を簡単にするために、これらのカスタム投稿タイプをバックエンドの1つのリストにマージする方法があるかどうか疑問に思いますか?投稿のリストと列を含む通常のバックエンド管理ページを見る場合のように、そのようなページで他の3つの投稿タイプを取得して、簡単に並べ替え/検索できますか?

CPTを1つに結合することはできません。可能であれば、管理領域の1つの「表示」ページの外側で分離する必要があります。

これを行う方法についての考え?? それとも、これをどのように開発するかについて考え始めたり、考え始めたりする場所はどこですか?


1
1つのCPTの使用を検討してから、単一のCPTで投稿を2つの用語で区切るカスタム分類法を作成できます。次に、フロントエンドテンプレートファイルの上部でいくつかのロジックを実行して、条件/税に基づいて訪問者を別のテンプレートに送ります
Sy Holloway

回答:


2

ただの出発点であり、今後の開発中に間違いなく問題がポップアップするでしょう。たとえば、現在、検索機能は文字列(post_type)を想定しており、配列を受け取っているため機能しなくなります。

[投稿]画面に複数の投稿タイプを一覧表示pre_get_postsするには、クエリをフックして変更します。このテストでは、投稿、ページ、製品が投稿画面に一緒に表示されます(http://example.com/wp-admin/edit.php)。

add_action( 'pre_get_posts', 'join_cpt_list_wspe_113808' );

function join_cpt_list_wspe_113808( $query ) 
{
    // If not backend, bail out
    if( !is_admin() )
        return $query;

    // Detect current page and list of CPTs to be shown in Dashboard > Posts > Edit screen
    global $pagenow;
    $cpts = array( 'post', 'page', 'product' );

    if( 'edit.php' == $pagenow && ( get_query_var('post_type') && 'post' == get_query_var('post_type') ) )
        $query->set( 'post_type', $cpts );

    return $query;
}

各投稿投稿タイプの列を表示するヘルパーコード:

add_filter( 'manage_edit-post_columns', 'add_cpt_column_wspe_113808' );
foreach( array( 'post', 'page', 'product' ) as $cpt )
    add_action( "manage_{$cpt}_posts_custom_column", 'show_cpt_column_wspe_113808', 10, 2 );

function add_cpt_column_wspe_113808( $columns ) 
{
    $columns[ 'cpt' ] = 'Post Type';
    return $columns;
}

function show_cpt_column_wspe_113808( $column_name, $post_id ) 
{
    if ( 'cpt' != $column_name )
        return;
    echo get_post_type( $post_id );
}

0

これには、Admin Menu Editor proをお勧めします。下部にリンクします。

面白い。私が取り組んでいる特定のプロジェクトで、私はいくつかの関連するCPT(カスタム投稿タイプ)を持っていました。セクションは「情報センター」で、プレスリリース、ホワイトペーパー、紹介文などが情報センター内にあることを望んでいました。フロントエンドでは、これを作成するのは簡単でした。バックエンドでも、論理的に一致するようにしたかったのです。ほとんどのカスタム投稿タイプは、特定のコンテンツ(メタファイル)とレイアウト要件のためにCPTとして設定されていました。最終的に、CPTは20近くになりました。

つまり、管理エディタプラグインを使用して、関連する情報センターのCPTをバックエンドメニューから削除し、関連するCPTリンクを含む「情報センター」メニューを作成しました。それらはすべて組み合わされているように見えましたが、そうではありませんでした。

ここにプラグインのリンクがあります:http : //adminmenueditor.com/デモも試してください


「情報センター」リンクをどのように作成しましたか?
frnhr 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.