0

ブログに[次へ/前へ]ボタンがあります。これは、ホームページから表示を開始して逆方向に移動するときに(投稿を前後に移動するために)うまく機能します。私はこれを使用します:

<div><h4><span><?php next_post('% &lsaquo;&lsaquo;&lsaquo;',  'Previous', 'no', 'no'); ?></span>
 <span> <div class="right"><?php previous_post('&rsaquo;&rsaquo;&rsaquo;  %', 'Next', 'no', 'no'); ?></span>
 </h4></div>

ただし、すべての投稿はカテゴリに分割されており、すべてのカテゴリのメニューがあります...これは問題が発生したときです。私はsingle.phpで上記のコードを使用していますが、そのカテゴリ内の投稿をクリックして[次へ/前へ]をクリックすると、その特定の投稿時に投稿された次または前の投稿に移動します...カテゴリではありません。

次のことを行うことは可能ですか:ユーザーが通常どおりにsteにアクセスして閲覧し続ける場合(投稿した順序で投稿を表示する場合)、[次へ] / [前へ]ボタンは通常どおり機能しますが、ユーザーがカテゴリを介して閲覧している場合は、次の以前のボタンはこれを認識し、ユーザーをそれらの投稿の残りの部分に誘導しますか?

4

2 に答える 2

0

ユーザーがフロント ページから来た場合は、URL にパラメーターを追加するだけでよい場合があります。だからあなたは持っていました:

http://path.to/blog/article/url/?fromhome=true

previous_post メソッドを呼び出すときに確認できます。設定されている場合は、すべての投稿を表示するようにパラメーターを変更できます。それ以外の場合は、同じカテゴリの投稿のみが表示されます。(fromhome パラメーターを次/前の投稿リンクに渡すことを忘れないでください!)

編集: post_link フィルターを使用して、permalink/next_post メソッドのリンクを変更できます。

于 2012-07-04T19:07:07.667 に答える
0

残念ながら、category.php に Cookie を設定しない限り、ユーザーが投稿をカテゴリ アーカイブ経由で閲覧したかどうかを区別する組み込みの方法はありません。そのチェックアウトを行うことを確認したい場合は、php 関数setcookie()を使用してください。

「in_same_cat」と呼ばれるnext_post()previous_post()の両方の引数があります。これは、「いいえ」に設定した例の両方の関数の最後の引数です。代わりに「はい」に設定するだけで、リンクは同じカテゴリ内の兄弟投稿を指します.

これらの関数は両方とも廃止されていることに注意してください。それらはnext_post_link()previous_post_link( ) に置き換えられました。引数が少し変更されました。例を次に示します。

<?php next_post('% &lsaquo;&lsaquo;&lsaquo;',  'Previous', 'no', 'yes'); ?>
<?php previous_post('&rsaquo;&rsaquo;&rsaquo;  %', 'Next', 'no', 'yes); ?>

次のようになります。

<?php next_post_link('% &lsaquo;&lsaquo;&lsaquo;', 'Previous', 'yes'); ?>
<?php previous_post_link('&rsaquo;&rsaquo;&rsaquo;  %', 'Next', 'yes'); ?>
于 2012-07-04T19:16:52.563 に答える