以前、ここの記事、や、ここの記事、や、ここの記事でWordpressでカスタム投稿を実現したのでR。前2つはプラグインによるもの、後1つはソースをいじることで実現したが、個人的には3つめのソースによる方法が重たくないような感じがして、お気に入りなのでR。
そこで、ここではソースによるカスタム投稿の、しかも、その記事の抜粋を実現したいのでR。
しかし、
記事の抜粋は、先の記事にも示したように、get_the_excerpt() か、the_excerpt()で実現できるのでRが、これは通常の投稿であって、カスタム投稿には通用しないのでR。
通常の投稿の部分にカスタム投稿の記事の抜粋をするには、結構ややこしかったのでR。
まず、通常の投稿の表示に関するcontent-single.phpやsingle.phpに
<?php $args = array( 'posts_per_page'=> 1, 'post_type' => 'custompost'); ?> <?php query_posts( $args ); ?> <?php if(have_posts()): ?> <?php while(have_posts()):the_post(); ?> <? $url_get = esc_url( home_url() . $_SERVER['REQUEST_URI'] ); $url_ret = str_replace('.net/','.net/custompost/',$url_get); $url_pid = url_to_postid($url_ret); ?> <?php setup_postdata($url_pid); ?> <?php echo get_the_excerpt_id($url_pid); ?> <?php endwhile; else: ?> <?php endif; ?> <?php wp_reset_query(); ?>
と記入するのでR。
ここでややこしいのが、
<?php $args = array( 'posts_per_page'=> 1, 'post_type' => 'custompost'); ?> <?php query_posts( $args ); ?> <?php wp_reset_query(); ?>
でRが、これで投稿1つ、投稿タイプはカスタム投稿と指定しないといけないようでR。
次に、
<?php if(have_posts()): ?> <?php while(have_posts()):the_post(); ?> <?php endwhile; else: ?> <?php endif; ?>
でRが、投稿があるか、あるならwhileで調べるのでR。
次に、
<? $url_get = esc_url( home_url() . $_SERVER['REQUEST_URI'] ); $url_ret = str_replace('.net/','.net/custompost/',$url_get); $url_pid = url_to_postid($url_ret); ?> <?php setup_postdata($url_pid); ?> <?php echo get_the_excerpt_id($url_pid); ?>
でRが、通常の投稿のURLを調べて、その下はカスタム投稿のURLを調べて、カスタム投稿のIDをセットして、さらにややこしいのが、
<?php setup_postdata($url_pid); ?>
でRが、これでここの投稿ですよと指定しないといけないのでR。ここではカスタム投稿のIDが指定されるのでR。ここの記事でも書いたのでRが、このsetup_postdata()がくせもので、これがないといつも同じ(たぶん先頭の)抜粋となるのでR。
最後に、
<?php echo get_the_excerpt_id($url_pid); ?>
でRが、これはget_the_excerpt()を利用した作成したfunctionで、function.phpに
function get_the_excerpt_id($post_id){ global $post; $post_bu = $post; $post = get_post($post_id); $output = get_the_excerpt(); $post = $post_bu; return $output; }
を記入することが必要となるのでR。
ただし、
function.phpをいじるには、ここにあるように注意しないといけないのでR。
上はややこしい方法で、しかも、場当たり的なソースなのでうまくいかない人はご免、なのでR。
ただし、
ミーはこれで一応正しく動いているのでR。
その他に、カスタム投稿のURLからの抜粋方法も考えたのでRが、これは分からなかったので、仕方なしになんとかして上の方法で実現できたのでR。
(広告)月額900円(税抜)から、高速・多機能・高安定レンタルサーバー『エックスサーバー』 (広告)WordPressの運用に特化したレンタルサーバー『wpXレンタルサーバー』 (広告)年間920円(税抜)からの格安ドメイン取得サービス─ムームードメイン─