3

私はWordPressの初心者です。動画用のカスタム投稿タイプを作成しましたが、投稿タイプをページに表示する方法がわかりません。たとえば、ユーザーがビデオを追加するときに、ビデオを公開するときにビデオ テンプレートを選択する必要がなく、公開されたビデオを開くと、ページを開く代わりにビデオ プレーヤーでページが開きます。ビデオ プレーヤーを備えたカスタム ページのようなものが必要です。ビデオ プレーヤーにビデオの URL を指定するだけで済みます。ビデオ プレーヤーのコードは既に用意されています。これどうやってするの?

4

3 に答える 3

11

すべてのカスタム投稿タイプの投稿またはページのデフォルトのテンプレート ファイルsingle-{your-cpt-name-here}.phpを作成するには、テンプレート ファイルに名前を付けるかarchive-{your-cpt-name-here}.php、これらの投稿またはページを表示するときに常にこれがデフォルトになります。

たとえば、次のようにsingle-video.php入力できます。

<?php query_posts( 'post_type=my_post_type' ); ?>

または、代わりにカスタム クエリを作成して、目的の出力を形成します。

<?php
$args = array(
    'post_type' => 'my_post_type',
    'post_status' => 'publish',
    'posts_per_page' => -1
);
$posts = new WP_Query( $args );
if ( $posts -> have_posts() ) {
    while ( $posts -> have_posts() ) {

        the_content();
        // Or your video player code here

    }
}
wp_reset_query();
?>

上記の例のようなカスタム ループには、Wordpress で選択できるテンプレート タグ( など)がたくさんあります。the_content

于 2012-09-20T15:29:23.280 に答える
3

Functions.php にコードを書く

    function create_post_type() {
    register_post_type( 'Movies',
    array(
        'labels' => array(
            'name' => __( 'Movies' ),
            'singular_name' => __( 'Movie' )
        ),
        'public' => true,
        'has_archive' => true,
        'rewrite' => array('slug' => 'Movies'),
    )
);

表示したい場所にこのコードを書きます

    <?php
    $args = array( 'post_type' => 'Movies', 'posts_per_page' => 10 );
    $loop = new WP_Query( $args );
    while ( $loop->have_posts() ) : $loop->the_post();
    the_title();
    echo '<div class="entry-content">';
    the_content();
    echo '</div>';
    endwhile;

?>

于 2013-12-01T19:40:36.037 に答える
1

CPT を作成したら、CPT の単一の投稿を表示するために次の操作を行います。

  • single.phpテンプレートでファイルを 複製し、名前を次のように変更しますsingle-{post_type}.php(例: single-movie.php)
  • WordPress からパーマリンクをフラッシュすることを忘れないでください。

この投稿から詳細を取得できます

詳細については、この投稿を確認してください。

于 2014-08-27T19:44:27.137 に答える