WordPressには、関連記事を出す方法がいくつかあるのでR。
ソースをいじって実現する方法は、この記事にあるのでR。
プラグインで実現する方法は、この記事にあるのでR。
しかし、
関連記事を、あえてランダム記事としたいのでR。
プラグインではなくて、ソースをいじる場合は、
こちらが参考になるのでR。
single.phpか、content-single.phpを見て、挿入したい個所にうまく、
<div id="random-posts"> <h2>Random Post</h2> <ul> <?php $posts = get_posts('orderby=rand&numberposts=5'); foreach($posts as $post) { ?> <li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></li> <?php } ?> </ul> </div>
か、こちらのように、先のphpの部分を
<?php $args = array( 'numberposts' => 5, 'orderby' => 'rand', 'post_status' => 'publish', 'offset' => 1); $rand_posts = get_posts( $args ); foreach( $rand_posts as $post ) : ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endforeach; ?>
と記述すれば出るのでR。
ただし、
<?php the_title(); ?>
があるように、これはタイトルしか対応していないのでR。
そこで、
あえて、記事の最初部分の抜粋から、それをタイトルの代わりにしたいのでR。
<?php the_excerpt(); ?>
としたが、これはタイトルの代わりと違って、その投稿の抜粋しか、出ないのでR。
そこで調べたのでR。
それには
function.phpをいじることになるようでR。
function.phpをいじる際の注意は、この記事にあるのでR。
まず、こちらを参考にして、
function ltl_get_the_excerpt($post_id){ global $post; $post_bu = $post; $post = get_post($post_id); $output = get_the_excerpt(); $post = $post_bu; return $output; }
を入れ、
<?php ltl_get_the_excerpt(); ?>
とするが、うまくでないのでR。
そこで、
<?php ltl_get_the_excerpt($post->ID); ?>
と引数を入れるも、これもだめでR。
調べると、
こちらの、setup_postdata() なる関数で、あらかじめ、なんかしないといけないようでR。
しかし、
これをこちらのように、function.phpのfunctionに入れると、
function get_the_excerpt( $post_id ){ global $post; $save_post = $post; $post = get_post($post_id); setup_postdata( $post ); // hello $output = get_the_excerpt(); $post = $save_post; return $output; }
でエラーとなるのでR。
そこで、single.phpか、content-single.phpにsetup_postdata()を入れ、下のようにすると、
<?php $args = array( 'numberposts' => 5, 'orderby' => 'rand', 'post_status' => 'publish', 'offset' => 1); $rand_posts = get_posts( $args ); foreach( $rand_posts as $post ) : setup_postdata($post); ?> <li><a href="<?php the_permalink(); ?>"><?php echo get_the_excerpt_id($post->ID); ?></a></li> <?php endforeach; ?>
出たのでR。これを解決するまでに、随分と時間がかかったのでR。
(広告)月額900円(税抜)から、高速・多機能・高安定レンタルサーバー『エックスサーバー』 (広告)WordPressの運用に特化したレンタルサーバー『wpXレンタルサーバー』 (広告)年間920円(税抜)からの格安ドメイン取得サービス─ムームードメイン─
この記事をシェアできます。