私はまだこの問題で立ち往生しています。
私のWordPressブログが機能していません http://www.example.com/news
別のページ番号をクリックすると、URL(およびページタイトル)が正しく更新されますが、別の投稿は表示されません。
私はもう試した:
私には何もうまくいきませんでした。
カスタムクエリの解決策はたくさんありますが、[設定]> [読み取り]> [投稿ページ]で設定した投稿ページを使用しているため、このページに投稿を表示するコードは記述していません。
更新:私はまだ解決策を見つけていません。私は自分のクエリを書くことでそれができることを知っていますが、デフォルトのWPブログを使い続けたいです。
あなたの問題がWordPressに関連しているという保証はありません。しかし、あなたは非常に一般的な質問をしていないので、私はあなたに非常に一般的な答えを与えるつもりです。これはあなたが理解するのに役立つはずです何が悪いのかを見つけ出し、自分で解決します。
チェックアウト アンダースコア 。ダウンロードしてテンプレート(index.php
、archive.php
など)を確認し、下線が含まれているものが不足していないかどうかを確認します。アンダースコアの良いところは、実行中のテーマを作成するために必要なすべての基本的なものであり、飾り気のないものです。したがって、コードに含まれていない場合は、調査する価値があるかもしれません。 have_posts
に関連するコードブロックには特に注意してください。
実際にはテーマに問題はないかもしれません。別のテーマ(たとえば、便利にダウンロードした下線)をテストして、テーマが含まれているかどうかを確認してください。ページネーションは機能し、無傷です。もしそうなら、あなたは運がいいです...つまり、アンダースコアで正しいコードの何が悪いのかを調整するために、もう少し深く掘り下げる必要があるということです。
テーマに問題はないが、実際にはサーバー構成に問題があることに気付いた場合、それは、いわば安心の1つでもあります。これは、理論的には、インストールを別の場所でテストするか、サーバーを再インストールして機能させることができるはずであることを意味します。ここまで進む前に、WordPressのバージョンを再インストールしてみてください。誰が知っている...それはうまくいくかもしれない。
Category.phpファイル(別名archive.php)のWPループ)を確認してください。次のものが含まれている必要があります。
if (have_posts()) : while (have_posts()) : the_post();
そして終了しました:
endwhile; endif;
Query_post関数で「page」/「paged」変数を渡す必要があります。
if ( get_query_var('paged') ) {
$paged = get_query_var('paged');
} elseif ( get_query_var('page') ) {
$paged = get_query_var('page');
} else {
$paged = 1;
}
query_posts(array('paged' => $paged));
if (have_posts()) : while ( have_posts() ) : the_post(); ?>
<!--Your HTML-->.
<?php endwhile; endif; wp_reset_query(); ?>
テーマにファイルarchive-learning.phpを作成します。
つまり、post_typeは「学習」です
<?php
if ( get_query_var( 'paged' ) ) {
$paged = get_query_var( 'paged' );
} elseif ( get_query_var( 'page' ) ) {
$paged = get_query_var( 'page' );
} else {
$paged = 1;
}
<?php
$custom_args = array(
'post_type' => 'learning',
'post_status' => 'public',
'orderby' => 'date',
'order' =>'DESC',
'posts_per_page'=>12,//limit 6
'paged' => $paged
);
$wp_query = new WP_Query( $custom_args );
$getPosts = get_posts($custom_args);
?>
<?php if ($getPosts) : ?>
<?php global $post,$wp_query;?>
<?php foreach ($getPosts as $post): ?>
<?php setup_postdata($post);?>
<?php echo "your content here";?>
<?php endforeach;?>
<?php
else :
endif;
?>
<div class="pagenation"><?php if (function_exists(custom_pagination)) {custom_pagination($wp_query->max_num_pages,"",$paged);} ?></div></div>
<?php wp_reset_postdata(); ?>
function custom_pagination($numpages = '', $pagerange = '', $paged='') {
if (empty($pagerange)) {
$pagerange = 2;
}
/*
* This first part of our function is a fallback
* for custom pagination inside a regular loop that
* uses the global $paged and global $wp_query variables.
*
* It's good because we can now override default pagination
* in our theme, and use this function in default queries
* and custom queries.
*/
global $paged;
if (empty($paged)) {
$paged = 1;
}
if ($numpages == '') {
global $wp_query;
$numpages = $wp_query->max_num_pages;
if(!$numpages) {
$numpages = 1;
}
}
/**
* We construct the pagination arguments to enter into our paginate_links
* function.
*/
$pagination_args = array(
'base' =>add_query_arg('page','%#%'),
'format' => 'page/%#%',
'total' => $numpages,
'current' => $paged,
'show_all' => False,
'end_size' => 1,
'mid_size' => $pagerange,
'prev_next' => True,
'prev_text' => __('«'),
'next_text' => __('»'),
'type' => 'plain',
'add_args' => false,
'add_fragment' => ''
);
$paginate_links = paginate_links($pagination_args);
if ($paginate_links) {
echo "<nav class='custom-pagination'>";
//echo "<span class='page-numbers page-num'>Page " . $paged . " of " . $numpages . "</span> ";
echo $paginate_links;
echo "</nav>";
}
}
Wp-Pagenavi を使用してページネーションを生成してみてください。そうすれば、少なくとも問題がデフォルトのページングなのか、ページングされた変数を正しく埋めていないコーディングのエラーなのかを確認できます。
これを試して
global $wpdb;
$pagenum = isset( $_GET['pagenum'] ) ? absint( $_GET['pagenum'] ) : 1;
$limit = 20;
$offset = ( $pagenum - 1 ) * $limit;
//$entries = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}design_information LIMIT $offset, $limit" );
$entries = $wpdb->get_results("Select * From design_information ORDER BY id DESC LIMIT $offset, $limit",ARRAY_A);
echo '<div class="wrap">';
<table class="widefat">
<thead>
<tr>
<th>SNo.</th><th>Layout</th><th>Org Description</th>
</tr>
</thead>
<tbody>
<?php if( $entries ) { ?>
<?php
$count = 1;
$class = '';
//echo "<pre>";
//print_r($entries);
for($i=0;$i<count($entries); $i++)
{
$pid=$entries[$i]['id'];
$class = ( $count % 2 == 0 ) ? ' class="alternate"' : '';
?>
<tr<?php echo $class; ?>>
<td>
<?php echo $entries[$i]['id'];
//echo $count;
$count++;?>
</td>
<td>
<?php echo $entries[$i]['layout'];?>
</td>
<td>
<?php echo $entries[$i]['org_description'];?>
</td>
</tr>
</table>
私も「投稿ページ」で遊んだことがありますが、結果が出ません。
私にとって唯一有効な解決策は、 Page-Navi プラグインと組み合わせたカスタムクエリでした。
私のテンプレートには次のコードがあります:
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'post_type' => 'post',
'orderby' => 'date',
'order' => 'DESC',
'post_status' => 'publish',
'posts_per_page' => 5,
'paged' => $paged,
);
$q = new WP_Query( $args );
if ( $q->have_posts() ) {
$displaylist = '<div class="list-group">';
while ( $q->have_posts() ) {
$q->the_post();
// build up your entry
unset( $displayTag );
}
$displaylist .= '</div>';
echo( $displaylist );
wp_pagenavi( array( 'query' => $q ) );
wp_reset_postdata();
}
?>
とともに post_per_page
サイトごとにエントリを管理します。 whileループでは、表示する必要のあるエントリを作成します。