はい、この関数に関するいくつかの類似したトピックがあります。 同じ結果を得るget_query_var( 'paged')
ブログ投稿のソートはget_query_varを使用している間はうまくいきません
私はwordpress3.5を使用しています、私は私のown
php mysqlベースのシステムを持っています、そして私はブログ機能を統合する必要があります、そして私はlatest posts
を別々のphpファイルoreder by post-date
にリストする必要があります。基本的に、私の要求は単純です:
list all of posts on a php file, suppose this file's name is blog_show.php
私はWordPressの外部のWordPressのAPIを使用するので、最初にWordPressをインポートする必要があります、あなたはここから方法を見つけることができます あなたのサイトとの統合WordPress
これが私のblog_show.phpの一部です
define('WP_USE_THEMES', false);
require_once '../blog/wp-load.php';
global $wp_query;
wp_reset_query();
$current_page = (get_query_var('p')) ? get_query_var('p') : 1;
$query_args = array(
'orderby' => 'date',
'order' => 'DESC',
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => 2,
'paged' => $current_page,
//'add_args' => true
);
$lateset_posts = new WP_Query($query_args);
$paging_args = array(
'base' => '%_%',
'format' => '?p=%#%',
'total' => 10,
'current' => $current_page,
'end_size' => 1,
'mid_size' => 1,
'prev_next' => True,
'prev_text' => __('« Previous'),
'next_text' => __('Next »')
);
$lateset_posts_paging = paginate_links($paging_args);
すべて問題ありません、私は使うことができます
$lateset_posts = new WP_Query($query_args);
私がしたいことを投稿を見つけるために。でも使えない
get_query_var('p')
私はいつも同じ値を得ます。そして、私はwp_queryがグロッタブルであると宣言したとしても、それはまだ使用できない、wp_queryのほとんどすべてのフィールドはnull
であることを私は見つけました。
get_query_var('p')
と$wp_query
になることはできませんので、私の意見も使えません。
ご覧のとおり、var p
は2か所でのみ使用されています
$current_page = (get_query_var('p')) ? get_query_var('p') : 1;
$query_args = array(
//something
'paged' => $current_page,
);
そして
$paging_args = array(
'base' => '%_%',
'format' => '?p=%#%', //P's here
'total' => 10,
'current' => $current_page,
'end_size' => 1,
'mid_size' => 1,
'prev_next' => True,
'prev_text' => __('« Previous'),
'next_text' => __('Next »')
);
p
をpaged
またはanything else
に変更してもテストはありますが、それでも同じエラーが発生します。
どこが悪いのですか?追加のphpファイルが必要ですか?ありがとう。
WordPressがすべてのクエリ文字列params($ _GET params)をquery_var
sとして自動的に追加することはありません。
Query Var somevar
が登録されていない場合:example.com/some-page/?somevar=hello - WordPressはsomevarを無視します
Query Var somevar
が登録されている場合:example.com/some-page/?somevar=hello - WordPressはこのパラメータの値を$ wp_query-> query_vars配列に格納します
その変数をWordPressに登録することとの違いは、その値がWP_Queryオブジェクトに格納されているかどうかです。(それは関係なく$ _GETを通して利用可能であるべきです)。
カスタムクエリvarを登録するには、次のようにします。
add_filter('query_vars', 'add_my_var');
function add_my_var($public_query_vars) {
$public_query_vars[] = 'some_unique_identifier_for_your_var';
return $public_query_vars;
}
また、デフォルトのWordPressのquery_var名を使用しないように注意してください - おそらく競合することになるでしょう、と私は思います。