私の質問の短い形式を思いつくのはむしろ難しいので、私には負担してください。指定された行がページネーションを使用して非表示になっている場合、次の行をフェッチする方法は?
jQueryとAJAXを使用して、私はすべての投稿をインデックスデータベースに保存しています。各投稿にはボタンがあり、ユーザーはその投稿のDIVを非表示にすることができます。
ここでは、10個の結果しか表示せず、残りのページを改行するようにしたいと思います。そこにたくさんのページ設定プラグインがあることを知っていますが、ユーザーがすでに表示されている10の投稿の1つを非表示にすると、次の投稿は表示されません。
1ページ目の投稿1〜10(2ページ目の投稿11〜20)とユーザーが投稿8を非表示にすると、投稿1,2,3,4,5,6,7,9、 1ページの10,11ページと2ページのポスト12-21など。
質問:どうしたらいいですか?ここで私は(ページ+非表示ボタンのトグル上のデータベースからの投稿、表示の記事をフェッチ)今持っているものです。
// Javascript
$(document).ready(function() {
$(document).on("click", ".hide", function(){
postID = $(this).attr('id').replace('hide_', '');
$('#post-' + postID).toggle();
return false;
});
});
// PHP
<?php
$pageposts = $wpdb->get_results($wpdb->prepare("SELECT * FROM $wpdb->posts"), OBJECT);
?>
<?php if ($pageposts): ?>
<?php global $post; ?>
<?php foreach ($pageposts as $post): ?>
<?php setup_postdata($post); ?>
<div id="buttons_<?php the_ID(); ?>">
<div id="hide_<?php the_ID(); ?>" class="hide" style="position:absolute; right: 2.5em;">
<a id="hidebtn_<?php the_ID(); ?>" href="#"><span></span></a>
</div>
</div>
<div id="post-<?php the_ID(); ?>">
/* display post content */
</div>
<?php endforeach; ?>
<?php endif; ?>
あなたの問題はMySQLを使用して解決する必要があります:ユーザが隠していないものだけをリストするようにSQLを修正してください。結果は簡単に –
になりますが、これは非効率です。私がすでにすべての投稿を表示しているときに投稿が非表示になるたびにクエリを起動するのはなぜですか? – Sweepster
申し訳ありませんが、私は質問が呼び出されるはずですが、フランシスの答えはあなたにヒントを与える必要があります誤解している必要があります:) –