这不是我第一次被Wordpress困住了。。。事情是这样的:我想要一个
我读了很多关于查询、头版、主页等的文章,我的结论是我应该
强烈建议您使用pre_get_posts筛选器而不是query_posts(),并通过检查is_main_query来更改主查询
因此,正如法典中建议的那样,我决定在函数中过滤pre_get_post。php而不是使用wp_查询(…)直接在公文包模板中。
add_action( 'pre_get_posts', 'cargo_portfolio' );
然后我设置了一些条件来检查我是否在正确的页面上:
function cargo_portfolio( $query ) {
if (!$query->is_main_query() ) return;
if ( $query->get( 'page_id' ) && ( $query->get( 'page_id' ) == 128 )){ //128 is my portfolio page
//edit query here
}
}
我不想使用静态数字(128),所以我找到了这个(投资组合/首页的代码)
function cargo_portfolio( $query ) {
if (!$query->is_main_query() ) return;
//check is static home page, since is_front_page() is not working yet at this level
if ( $query->get( 'page_id' ) && ( $query->get( 'page_id' ) == get_option( 'page_on_front' ) )){
//edit query here
}
}
我开始用下面的代码编辑查询:
$query->set( 'page_id', null );
$query->set( 'post_type', 'post' );
$query->set( 'tag', 'portfolio' );
$query->set( 'showposts', 16 );
所以我最终得到了这个函数:
function cargo_portfolio( $query ) {
if (!$query->is_main_query() ) return;
//check is static home page, since is_front_page() is not working yet at this level
if ( $query->get( 'page_id' ) && ( $query->get( 'page_id' ) == get_option( 'page_on_front' ) )){
$query->set( 'page_id', null );
$query->set( 'post_type', 'post' );
$query->set( 'tag', 'portfolio' );
$query->set( 'showposts', 16 );
}
}
好感谢阅读……:)
这里的问题是,我取消设置页面id并更改post类型变量(因为我想获取post),这会中断查询。现在我登陆到404页面。
有没有人有一个好的解决方案来实现这一点?以前,我使用的是Loops插件,但它已经两年没有更新了,现在已经坏了我相信应该有一个简单的方法来做到这一点。
非常感谢!!!
最后,我直接在模板中使用了一个自定义查询。
通过向分页函数get_next_posts()和get_previous_posts()添加查询参数,可以使用分页函数,请参见此处:
自定义wp_查询上的Wordpress分页(下一个发布链接)未显示。
谢谢