这个问题是关于一个非常具体的情况。
该网站有一个模板文件,可以运行带有缩略图、链接标题和摘录的默认类别查询,也可以仅根据查看者的选择运行链接标题。也就是说,一旦进入类别默认页面,查看器就可以单击仅列表选项。https://domain/category/glossary of wood terms?format=列出此部件工作正常。
第二个选项(仅链接标题)应选取整个数据集,而不是分页的数据集。
使用pre\\u get\\u posts,我可以设置查询以获取整个数据集(未分页)
$query->set( \'posts_per_page\', -1 );
以及只在特定URL上运行该代码的if测试。这就是问题所在。WordPress发现地址是https://domain/category/glossary-of-wood-terms?category_name=glossary-of-wood-terms 隐藏查询字符串。但WordPress将其视为$\\u POST变量,而不是$\\u GET变量。
我应该在pre\\u get\\u posts测试中使用什么地址?
这是我最初添加到函数中的代码。php
function get_all_terms($query)
{
// This will run for all main queries that are not in wp-admin.
// You may want "is_archive()", "is_page(\'slug\')" or some other condition.
if(empty($Format))
$Format = \'test 1\';
echo $Format;
if ( ! is_admin() && $query->is_main_query() && ($Format == \'list\'))
{
$query->set( \'posts_per_page\', -1 );
}
}
add_action( \'pre_get_posts\', \'get_all_terms\' );
下面是我添加的代码,以查看WordPress显示为URL的内容。此代码位于标题中。php。正文中的$current\\u url上有回音 global $wp;
if(!empty($_POST[\'format\']))
$Format = $_POST[\'format\'];
$current_url = add_query_arg( $wp->query_vars, home_url( $wp->request ));