サポート » プラグイン » WP Over Network 記事抜粋を表示させたい

  • 解決済 foo-san

    (@foo-san)


    WP Over Networkをプラグインで導入して
    固定ページにショートコードでカスタム投稿のサムネイル・記事タイトル・URLを
    プラグインテンプレートに入っていたarchive-simple.phpテンプレートを少し
    カスタマイズして使用させていただき、表記も問題なく利用できています。

    今回、各カスタム投稿の記事抜粋(もしくは記事の内容)を記事タイトルとURLの間に表記させたいと思い
    頑張りましたが、どうもうまくいかず、方法がありましたら
    お助けいただけないでしょうか?

    <div class="entry">
    <?php
    global $post;
    foreach ( $posts as $post ):
    	switch_to_blog( $post->blog_id );
    	$post = get_post( $post->ID );
    	$the_date = mysql2date( get_option( 'date_format' ), $post->post_date );
    
    ?>
    
    <?php $count = 1; //ループ回数を入れる変数 ?>
    <?php
            //4番目だったらclass=right0、それ以外はクラスなし
            if ($count%4 == 0) {
                echo '<div class="right0">';
            } else {
                echo '<div>';
            }
        ?>
    <?php if ( current_theme_supports( 'post-thumbnails', $post->post_type ) ): ?>
    		<div class="wponw-post-thumbnail<?php ! has_post_thumbnail( $post->ID ) and print(' no-thumbnail')
    			?>"><a href="<?php the_permalink(); ?>" title"</php the_title_attribute(); ?><?php the_post_thumbnail(array(135, 160)); ?></a></div>
    
    <?php endif; ?>
    
    		<span class="wponw-separator">-</span>
    		<a class="wponw-post-title" href="<?php
    			echo esc_url( get_permalink( $post->ID ) ) ?>" title="<?php
    			echo esc_attr( get_the_title( $post ) ) ?>"><?php echo esc_html( get_the_title( $post ) ) ?></a></br>
    
    <?php if ( $show_date ) : ?>
    		<span class="post-date wponw-post-date"><?php echo apply_filters( 'get_the_date', $the_date ) ?></span>
    <?php endif; ?>
    
    	<a class="wponw-blog-name" href="<?php echo home_url(); ?>"><font color="#4169e1"><?php echo get_bloginfo( 'name' ); ?></font></a></br>
    </div><?php $count++; //最後にループ回数を一つ進める ?>
    <?php
    	restore_current_blog();
    endforeach;
    ?>
    </div>

    show_dateは表記させないのでその部分に<?php the_excerpt(); ?>を使ってみましたが
    固定ページの抜粋が表記されてしまいます。

    何か良い方法はありますでしょうか。

15件の返信を表示中 - 1 - 15件目 (全16件中)
  • モデレーター Takuro Hishikawa

    (@hissy)

    これは何と言うかどちらかというと現時点でのWordPressのバグなんですよね…。こちらのコードに置き換えてみてくださいな

    <?php echo apply_filters( 'get_the_excerpt', $post->post_excerpt ); ?>
    トピック投稿者 foo-san

    (@foo-san)

    ご返事ありがとうございます。

    <?php if ( $show_date ) : ?>
    		<span class="post-date wponw-post-date"><?php echo apply_filters( 'get_the_date', $the_date ) ?></span>
    <?php endif; ?>


    <?php if ( $post_date ) : ?>
    <span class=”post-date wponw-post-date”><?php echo apply_filters( ‘get_the_excerpt’, $post->post_excerpt ); ?></span>
    <?php endif; ?>`に
    置き換えてみましたが、
    ショートコードを貼り付けた固定ページの文字が表示されます。
    何か間違っているのでしょうか?

    モデレーター Takuro Hishikawa

    (@hissy)

    よく見たら、

    wponw::setup_blog_and_postdata( $post )

    が入っていませんね。archive-simple.phpが古いみたいです。プラグインの説明欄の方を参考にしてください

    トピック投稿者 foo-san

    (@foo-san)

    頑張ってこんな感じで修正しました。
    記事抜粋読み込みできました。
    ありがとうございました。
    ただ、サムネイルが表示されなくなり何か間違った箇所があるのかと?
    <div class=”entry”>
    <?php if ( ! empty ( $posts ) ) : ?>

    <?php
    foreach ( $posts as $post ) :
    wponw::setup_blog_and_postdata( $post );
           
    ?>

    <?php $count = 1; //ループ回数を入れる変数 ?>
    <?php
    //4番目だったらclass=right0、それ以外はクラスなし
    if ($count%4 == 0) {
    echo ‘<div class=”right0″>’;
    } else {
    echo ‘<div>’;
    }
    ?>

    <?php if ( current_theme_supports( ‘post-thumbnails’, $post->post_type ) ): ?>
    <div class=”wponw-post-thumbnail<?php ! has_post_thumbnail( $post->ID ) and print(‘ no-thumbnail’)
    ?>”>” title”</php the_title_attribute(); ?><?php the_post_thumbnail(array(135, 160)); ?></div>

    <?php endif; ?>

    <span class=”wponw-separator”>-</span>
    <a class=”wponw-post-title” href=”<?php
    echo esc_url( get_permalink( $post->ID ) ) ?>” title=”<?php
    echo esc_attr( get_the_title( $post ) ) ?>”><?php echo esc_html( get_the_title( $post ) ) ?></br> <?php echo apply_filters( ‘get_the_excerpt’, $post->post_excerpt ); ?></br>

    “><font color=”#4169e1”><?php echo get_bloginfo( ‘name’ ); ?></font></br>
    </div><?php $count++; //最後にループ回数を一つ進める ?>

    <?php
    wponw::restore_blog_and_postdata();
    endforeach;
    ?>

    <?php else : ?>
    <p>Sorry, there is no post.</p>
    <?php endif; # End of empty( $posts ) ?>

    </div>

    たびたびすみません。どこがサムネイルが出ない原因ありますか?

    トピック投稿者 foo-san

    (@foo-san)

    以下のようなコードでカスタム投稿のサムネイル・記事タイトル・URL・記事抜粋も表示
    出来るようになったのですが、foreachが何度もあるからだと思いますが、
    ショートコードで4件取得するにすると4回並びに続けて同じ取得内容が表示され、トータル16件表示されます。
    2日間いろいろと試行錯誤したのですが、レイアウトが崩れたり、1個目のサムネイルが出ない等
    の壁にぶちあたりました。ご指導よろしくお願いします。

    <div class=”entry”>

    <?php
    global $post;
    foreach ( $posts as $post ):
    switch_to_blog( $post->blog_id );
    $post = get_post( $post->ID );
    $the_date = mysql2date( get_option( ‘date_format’ ), $post->post_date );
    ?>

    <?php if ( ! empty ( $posts ) ) : ?>
    <?php
    foreach ( $posts as $post ) :
    wponw::setup_blog_and_postdata( $post );

    ?>

    <?php $count = 1; //ループ回数を入れる変数 ?>
    <?php
    //4番目だったらclass=right0、それ以外はクラスなし
    if ($count%4 == 0) {
    echo ‘<div class=”right0″>’;
    } else {
    echo ‘<div>’;
    }
    ?>
    <section id=”post-<?php the_ID() ?>” <?php post_class() ?>>

    <?php if ( current_theme_supports( ‘post-thumbnails’, $post->post_type ) ): ?>
    <div class=”wponw-post-thumbnail<?php ! has_post_thumbnail( $post->ID ) and print(‘ no-thumbnail’)
    ?>”>” title”</php the_title_attribute(); ?><?php the_post_thumbnail(array(135, 160)); ?></div>

    <?php endif; ?>   <a class=”wponw-post-title” href=”<?php
    echo esc_url( get_permalink( $post->ID ) ) ?>” title=”<?php
    echo esc_attr( get_the_title( $post ) ) ?>”><?php echo esc_html( get_the_title( $post ) ) ?></br>

    “><font color=”#4169e1”><?php echo get_bloginfo( ‘name’ ); ?></font></br>

    <font color=”#ff1493″>
    <?php if ( $show_date ) : ?><?php echo mb_substr(get_the_excerpt(), 0, 11) . ‘…’; ?></font></br>
    <?php endif; ?>

    </div><?php $count++; //最後にループ回数を一つ進める ?>

    <?php
    wponw::restore_blog_and_postdata();

    endforeach;
    ?>

    <?php else : ?>
    <p>Sorry, there is no post.</p>
    <?php endif; # End of empty( $posts ) ?>

    <?php
    restore_current_blog();
    endforeach;
    ?>
    <?php
    wp_reset_query();
    ?>

    </div>

    モデレーター Takuro Hishikawa

    (@hissy)

    foreachが二重になってるからですね。一重にしてください

    トピック投稿者 foo-san

    (@foo-san)

    いろいろソースを変えてみましたが
    うまくいきません。

    <section id=”post-<?php the_ID() ?>” <?php post_class() ?>>

    <?php $count = 1; //ループ回数を入れる変数 ?>

    の上に
    入れると4個の記事のみしか表示されなくなり
    レイアウトはくずれないのですが

    トップの固定ページに3種類のカスタム投稿記事を違う件数で表示させたいので困っています。

    foreach一回でうまくいくソースを教えていただけないでしょうか

    モデレーター Takuro Hishikawa

    (@hissy)

    「3種類のカスタム投稿記事を違う件数で表示させたい」というのは、このスレッドの質問とは別の問題だと思いますが、いかがでしょうか

    トピック投稿者 foo-san

    (@foo-san)

    たしかにおっしゃる通りです。3種類のカスタム投稿記事を違う件数で表示させたいのは
    自己解決できない場合は違うスレッドにたてさせていただきたいと思います。

    foreachが二重になってるのを一重にして読み込めるソースを教えていただけないでしょうか
    自己解決できずにこまっています。

    よろしくお願いします。

    モデレーター Takuro Hishikawa

    (@hissy)

    いや、何のために二重にしてるんですか?そちらの方が、理解できません。

    トピック投稿者 foo-san

    (@foo-san)

    カスタム投稿のサムネイル・記事タイトル・URLを読み込みできていて、
    記事抜粋を追加で読み込ますために、教えていただいた

    wponw::setup_blog_and_postdata( $post )


    ソースにいろいろやってみてのですがうきくいかなかったです。

    サムネイル・記事タイトル・URL・記事抜粋を一重やりたいのですが
    ソースがわからないです

    よろしくお願いします。

    モデレーター Takuro Hishikawa

    (@hissy)

    foreachを片方無くせば良いと思いますが。なぜ2つあるのですか。

    トピック投稿者 foo-san

    (@foo-san)

    ご返事ありがとうございます。お手数をおかけしてすみません。

    <?php
    global $post;
    foreach ( $posts as $post ):
    switch_to_blog( $post->blog_id );
    $post = get_post( $post->ID );
    $the_date = mysql2date( get_option( ‘date_format’ ), $post->post_date );
    ?>

    wponw::setup_blog_and_postdata( $post )

    のソースを
    入れて二回目の

    <?php
    foreach ( $posts as $post ) :
    wponw::setup_blog_and_postdata( $post );

    ?>

    の箇所を省略するとうまく表示されなくなります。

    <?php
    global $post;
    foreach ( $posts as $post ):
    wponw::setup_blog_and_postdata( $post )
    switch_to_blog( $post->blog_id );
    $post = get_post( $post->ID );
    $the_date = mysql2date( get_option( ‘date_format’ ), $post->post_date );
    ?>

    とやってみましたがダメでした。
    ソースの書き方が悪いのが原因かと思い。
    教えていただけたらと思います。

    モデレーター Takuro Hishikawa

    (@hissy)

    wponw::setup_blog_and_postdataの機能で、switch_to_blogとget_postが含まれています。重複しているのがダメなのでしょう。

    トピック投稿者 foo-san

    (@foo-san)

    ありがとうございました。
    お忙しい中最後までおつあいくださって感謝しております。

    先ほどいただいたヒントをもとに
    いらないソースをはぶいていき

    <?php
    global $post;
    $the_date = mysql2date( get_option( ‘date_format’ ), $post->post_date );
    ?>

    <?php if ( ! empty ( $posts ) ) : ?>
    <?php
    foreach ( $posts as $post ) :
    wponw::setup_blog_and_postdata( $post );

    ?>

    で思う表示できました。
    ほんとうにありがとうございました。

15件の返信を表示中 - 1 - 15件目 (全16件中)
  • トピック「WP Over Network 記事抜粋を表示させたい」には新たに返信することはできません。