web-dev-qa-db-ja.com

各投稿のコンテンツに基づいて、投稿のスタイルを変えたい

チェックアウトするwordpressテーマは次のとおりです(完全には終了していません): http://benlevywebdesign.com/wordpress/

Php/wordpressを使用してテーマを作成するのは初めてなので、そのことを念頭に置いてください。 index.php、css、および960.cssファイルがありますが、含めることができる他のファイルについては知りません。

私のテーマでは、画像やビデオリンク、オーディオリンクなど、各投稿のコンテンツに基づいて投稿のスタイルを変えたいと思っています。

最初に、サムネイルや通常の投稿画像のサイズではなく、写真が大きく大きくなる写真スタイルに焦点を当てたいと思います。

異なるスタイルを持つ方法を学んだら、それは単なるcssなので、自分でさらに追加できます!


現在のループコードは次のとおりです。

    <!-- ***** Post **** -->
    <div class="grid_2 alpha">
        <div class="date_banner">
            <div class="d"><!-- sidebar 1 --><?php the_time('d'); ?></div>
            <div class="m"><!-- sidebar 1 --><?php the_time('M'); ?></div>
            <div class="y"><!-- sidebar 1 --><?php the_time('Y'); ?></div>
        </div>
        <div class="commentsnumber">
            <?php comments_number('No comment', '1 comment', '% comments'); ?>
        </div>
    </div>

    <div class="grid_10 omega">

      <div class="post">
        <div class="titlepostauthorimage">
            <div class="post-title">
                <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
            </div>
            <div class="post-author-image">

            </div>
            <div class="post-author">
                 <?php the_author_posts_link(); ?>
            </div>
            <div class="post-image">
                <?php the_post_thumbnail( $size, $attr ); ?> 
            </div>
        </div>

        <div class="post-body">
            <?php the_content(); ?>
        </div>
        <div class="post-meta">
            <?php the_category(', '); ?>
            <!-- post tags -->
        </div>
    </div>
    <div class="commentsarrow"> <?php wp_list_comments(); ?> </div>

    </div>
        <!-- ***** END post ***** -->
    <?php endwhile; else: ?>
        <!-- In case no posts were found -->
            <div class="post-cf">Hmmm? Can't. Find. Post.
            </div>
    <?php endif; ?>

これが、私がやりたいことをしているブログテーマの例です(下から3番目の投稿) http://demo.kreativethemes.com/evolution/


post_class()関数の使用について読み、投稿タイプ用に別のphpファイルを作成する必要があること、またはこの質問で私が好むものであれば、ループにマークアップをコーディングすることができることを読みました- カスタム投稿タイプのCSS (そして彼らが何をしているかは理解したが、実際にそれを行う方法はわからない)

先ほど言ったように、含めることができる他のファイルについてはあまり知らないので、それがあまり複雑でない場合は、ループに直接入れたいと思います。

1

どの「タイプ」が必要かに応じて、 Post Format の機能を探しているかもしれません。それはあなたが標準、引用符、ギャラリーなどとして投稿を設定することを可能にします(Tumblrのようなもの)。有効にするには、単にこれをあなたのテーマ(おそらくfunctions.php)に入れます:

add_theme_support( 'post-formats', array( 'aside', 'gallery', 'quote' ) );

それから、あなたのテンプレートには、いくつかの選択肢があります。あなたはsingle.phpでワイルドにするために条件を使うことができます、あるいはあなたはそれぞれの投稿フォーマットのためにPHPファイルを作ることができます。 single.phpの中には、次のようなものが必要です。

get_template_part( 'content', get_post_format() );

これは投稿フォーマットをチェックし、適切なファイルをロードします。そうすることで、ギャラリー形式の投稿は簡単に次のようになります。

do_shortcode('[gallery]')

挿入済みテンプレートはギャラリーが表示されているときにだけを認識し、自動的に画像を表示します。

それはあなたが何をしているのですか?

1
clark

カスタム投稿フォーマットを使用してください。ほんとうにあなたが望むことをほぼ行うでしょう!

http://codex.wordpress.org/Post_Formats

申し訳ありませんが、これを実行することをお勧めします。あなたはループのグリッドクラスとdivを保つことができました、しかしそれからget_template_part( 'content'、get_post_format());そのdiv内で。

投稿フォーマットがビデオの場合、テンプレートファイル 'content-video.php'が読み込まれます。そこにそれは通常のようにマークアップとphpでビジネスです。

'content-video.php'またはそれがどんな投稿タイプであっても、いつものようにCSSクラスをロードすることができます。

もう少し詳しく説明します。

Functions.phpファイルで:

add_theme_support( 'ポストフォーマット'、配列( 'ビデオ'、 'ギャラリー'));

次に、index.phpファイル(ループを含むファイル)で、これを実行できます。

これで正しいコンテンツファイルが手に入ります。 content.phpまたはcontent-video.phpなど.

次に、content-video.phpで、たとえばユーチューブビデオを表示している場合は、次のようにします。

これを念頭に置いて、次のファイルがあります。

functions.php - 遅かれ早かれこれが必要になるので作成しても問題ありません

content.php - これは投稿内容に特有のマークアップを持ちます。これは一般的なものです。

content-video.php - 他のすべてのコンテンツとは異なるコードを配置する場所です。または言い換えれば、video.phpに固有のもの

Index.phpは多かれ少なかれループを設定しますこれが助けになることを願っています!

0
dmarges