TAMA-wpさん、はじめまして。
当方、WP ME 2.2.3で運営しておりますが、
以前に「Related Posts Link」を使っていました。
自分で関連付けする記事のタイトルを選んで
手動で関連記事を表示させるプラグインだったのですが、
記事中に関連記事の全部を手動で関連記事のリンクを挿入(表示)させれば
「Related Posts Link」と同様のことが実現でき、
プラグインを使っていた時よりも大きな変化が無いと体感したので、
わずか3回試して「Related Posts Link」のプラグインを
使う理由と意味を感じなかったので利用をやめました。
自分で関連付けをしたいということであれば、
記事投稿時に過去記事や関連記事に該当のリンクを挿入すれば
解決されるのではないでしょうか?
Similar Posts
http://rmarsh.com/plugins/similar-posts/
というのがあります。
ご希望に全て答えてくれるかは分かりませんが、
Similar Posts displays a list of posts that are similar or related to the current posts.
とあるので関連の記事を表示する機能はあるようです。
日本語環境で正しく動作できるか検証した方が良いかもしれません。
hikage様
はじめまして。
実体験に基づいたアドバイスありがとうございます。
確かに新しく記事をあげる場合は、自分でhtmlタグを挿入しても大差ないかな・・・とhikageさんのアドバイスから思いました。
ただ記事が多くなると、過去の記事に遡って記事を探してリンクを貼っていくのは
ちょっとめんどくさいかな?と感じましたので、
クリック一つでリンクとタイトルが挿入できたらいいのになと思った次第です。
カスタムフィールドに記事id入れて・・・とか自分なりに考えたんですが、力不足で無理でしたw
taikiken様
プラグインのご紹介ありがとうございます。
Similar Postsも自動挿入のようですが、
Simple Tagsより、かなり精度を上げられるようですね。
手動挿入のプラグインが見つからない場合は、一度試してみようと思います。
手動挿入のプラグインが見つからない場合は、一度試してみようと思います。
「手作業で」が優先されるのでしたら、カスタムフィールドなどを利用してテンプレートを操作する方が早そうな気がします。
カスタムフィールドに記事id入れて・・・とか自分なりに考えたんですが、力不足で無理でした
すみません、既にお試しだったのですね。
IDとかではなくそのまま表示させるリンク(aタグ)を入力されたらどうでしょう。
taikiken様
アドバイスありがとうございます。
当方でも、カスタムフィールドとquery_postsを使って表示を試みたのですが
個別記事
1.記事
2.関連記事のタイトルとリンク<!–ここに表示–>
3.コメント欄
この位置に表示しようとすると、
表示自体はできたのですが、2に現在の記事と異なるカテゴリの関連記事が含まれていた場合、その表示以下(3とサイドバー)がその影響を受けてしまうのか、現在のカテゴリ・記事の取得がおかしくなりました。
ループ内にループを入れ子にしてしまったからでしょうか???う〜ん・・・
プラグインなら楽に設定できるかな?と思っただけで、
プラグインにこだわっている訳ではないので、
参考になるコードなどご存知でしたら是非ご紹介頂ければ助かります。
よろしくおねがいします。
表示自体はできたのですが、2に現在の記事と異なるカテゴリの関連記事が含まれていた場合、その表示以下(3とサイドバー)がその影響を受けてしまうのか、現在のカテゴリ・記事の取得がおかしくなりました。
ループ内にループを入れ子にしてしまったからでしょうか???う〜ん・・・
ループをもと(オリジナル)に戻すとサイドバーの不具合は解消されると思います。
全てのループが終わった後に以下のクエリを挿入するとループがもとに戻ります。
query_posts($query_string);
taikiken様
お世話になります。
上のコメントの修正ですがquery_postsじゃなくてget_postsで試してました。
すみません。
カスタムフィールドはrelated_idというキーを設定して、
値にはpost_IDをコンマ区切りで設定という感じです。
一応試したコードは
<?php
$cf_related_id = get_post_custom_values('related_id');
$related_posts_id = implode(",",$cf_related_id);
$arg_str = "include=".$related_posts_id;
$relatedposts = get_posts($arg_str);
foreach($relatedposts as $post): setup_postdata($post); ?>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a><br />
<?php endforeach; ?>
こんな感じです。関連記事の取得とサイドバーの表示はうまくいってました。
しかしコメント欄の内容が一番最後の関連記事のものになってしまうようです。
一応試しに上記コードの一番最後に<?php query_posts($query_string);?>を入れてみましたが、表示がおかしくなってしまいました。
解決のヒントなどありましたら、是非ともお願い致します。
関連記事の取得とサイドバーの表示はうまくいってました。
しかしコメント欄の内容が一番最後の関連記事のものになってしまうようです。
コメントはforeachの後に表示ですか?
$postの値が変わってしまっているからかも知れないです。
試していないので外している可能性アリなのですが、
foreach開始の前に
$current_post = $post
foreach終了後に
$post = $current_post
なんてのはどうでしょうか。
taikiken様
度々お世話になります。
コメントはforeachの後に表示したいと思ってます。
アドバイス頂いた通り上記で試したコードに
<?php
$current_post = $post;
//省略
<?php endforeach; ?>
<?php $post = $current_post; ?>
という感じで入れましたところ、コメントは問題なく表示されるようになりました!
けれども、コメント数を取得するところだけが、
やっぱり関連記事の一番最後のものになってしまいます。
comments.php内のこの部分
<?php comments_number('No Responses', 'One Response', '% Responses' ); ?> to “<?php the_title(); ?>”
タイトルは問題なく現在の記事のになります。
ひとつクリアできたら、またひとつ・・・WPは奥が深いですorz
大変心苦しいのですが、お気付きの点ありましたら是非ご指導下さいませ!
よろしくお願いします。
コメント数は投稿idを使っているので、投稿idも戻さないといけない、ではないかと思います。
$post = $current_post;
$id = $post->ID;
で、どうでしょう。
taikiken様
お世話になります。
アドバイス通りに$id = $post->ID;を加えたところ、
コメント数もちゃんと正しく表示されるようになりました!
すごく勉強になりました。
最後までお付き合い頂きまして
本当にありがとうございました!