您当前的位置:首页 > TAG信息列表 > pre-get-posts
WordPress搞砸了‘Pre_Get_Posts’中的‘orderby’=>‘meta_value_num’
我有很多_ai_price_int 元值设置为数字。这是表格的外观: meta_id, post_id, meta_key, meta_value 1309, 1111, _ai_price_int, 6550 1310, 1115, _ai_price_int, 7100 1311, 1113, _ai_price_int, 7500 1312, 1103, _ai_price_int, 6000
如何更改分类档案主循环的税务查询?
我正在尝试更改主要WP\\U查询对象中税务查询中的一个参数,以便为我的分层分类法的存档创建存档视图。我的目标是更改税务查询中的一个参数,而保留其余参数不变。我尝试获取当前查询,修改tax\\u查询数组,然后将其传递给set。add_action( \'pre_get_posts\', \'slug_cpt_category_archives\' ); function slug_cpt_category_archives( $query ) { if ( is_tax( \'TAX
如何在取消设置后恢复查询变量AUTHER_NAME?
我正在取消设置查询变量author_name 用于在作者模板页面中查询帖子。我正在使用pre_get_posts 筛选主查询。运行查询后,我需要将author_name 查询变量。这就是我取消设置的地方。function wpquery( $query ) if ( $query->is_author() && $query->is_main_query()) { $query->set( \'post_statu
通过带有PRE_GET_POST的自定义元排除帖子
我正在为活动日历创建自定义帖子。我的自定义帖子有两个自定义元字段,称为“event\\u star\\u date”&;“event\\u end\\u date”。我想使用pre_get_posts 排除其“event\\u end\\u date”小于todays date或“event\\u end\\u date”为空且“event\\u start\\u date”小于todays date的事件。我看到了一些代码,但最终对我不起作用。多亏了@cybnet,我已经很快得到了我需要的代码,但
我正在尝试向使用PRE_GET_POST登录的用户隐藏自定义帖子类型类别
我在我的主题中有一个自定义的帖子类型,叫做公文包。它的类别称为项目类别。我正在尝试排除登录用户的项目类别。我根本没法让它工作。我已经通读了pre_get_posts codex 但我只是被卡住了。我不确定是为我的自定义帖子类型定义类别,还是与普通帖子类别相同。当我单击类别进行编辑时,它位于浏览器url栏中wp-admin/edit-tags.php?action=edit&taxonomy=project-type&tag_ID=94&post_type=portfolio这是
在请求的WHERE语句中使用OR代替AND的单个META_QUERY查询
我希望本机WordPress搜索输入除了标准标题和内容搜索之外,还可以搜索元数据,但是设置meta_query 添加AND 当我需要的是OR.我的职能:function search_faqs_metadata($query) { if(!is_admin() && $query->is_main_query()) { if($query->is_search) { $query->set(\'meta_query\', a
PRE_GET_POSTS订单描述未注册
我创建了一个筛选函数来筛选帖子类型items 根据它的元价值_item_price. 问题是它只按升序工作,我不知道为什么。我的pre_get_posts 函数如下所示:function frontend_items_filter( $query ) { global $page_items_id if(!is_page($page_items_id)) return; if($query->query_va
我可以将我的WP_QUERY设置为主查询吗?
当我创建WP_Query 它自动被视为“二次查询”,但如果我用WP\\u查询替换我的主查询呢?我可以将我的WP\\U查询设置为“主查询”吗?我之所以这么说是因为我需要pre_get_posts 进行一些筛选。我当前的逻辑如下所示:if(isset($query->query_vars[\'post_type\']) && $query->query_vars[\'post_type\'] == \'my_post_type\') 上述逻辑的问题是,我在同一模板中有两个
POST_TAG不起作用的WP_TAX_QUERY
使用pre\\u get\\u posts挂钩,我试图通过将搜索限制在应用了某些(多个)标记的帖子上,来允许用户缩小搜索范围。这是我的钩子和功能:add_filter(\'pre_get_posts\', array($this, \'pre_get_posts\'), 0); function pre_get_posts( $query ) { if ( !is_admin() && $query->is_search ) { $query
在第一页设置自定义帖子数量
我需要限制在WordPress首页显示的帖子只在第一页。原因是一篇粘性文章破坏了我的布局和默认WP设置中设置的总帖子数。我为找到此函数functions.php 但它似乎不起作用。你能帮我修一下吗?我更喜欢functions.php 改变我想知道它是否不起作用,因为带有这个片段的帖子真的很新。add_action( \'pre_get_posts\', \'sk_change_posts_per_page\' ); /** * Change Posts Per Page for
如何唯一标识查询?
今天我在考虑如何区分查询,主要是创建唯一标识符。在这个过程中,我进行了一些尝试,请参见下面的代码。主要思想是根据$query 或$query_vars 的属性WP_Query. 实际上已经有了一个属性query_vars_hash, 但它很早就创建了一个子集vars,对于区分在同一请求上发生的查询没有帮助。以下是我目前掌握的情况:add_action( \'pre_get_posts\', \'unique_query\' ); /** * unique_query *
基于自定义分类元表的全局帖子查询
我已经完成了为我的站点中的自定义帖子类型创建自定义分类法+管理面板的过程。这些分类法将各种元数据存储在wp_taxonomymeta 表,并使用get\\u metadata/set\\u metadata来获取和设置这些字段的值。此分类法中的一个字段是启用/禁用标志。我想全局排除禁用标志设置为true的帖子。我正迷上pre_get_posts, 但我不知道如何修改查询以便在wp_taxonomymeta 用于在查询中排除应隐藏的帖子。有人能对此提供一些见解吗?我在谷歌上找不到多少有用的建议。如果需要澄清
对随机显示的帖子在自定义帖子类型上使用$Seed
我看到了这个link 随机显示帖子而不重复。但是,如何将其应用于自定义帖子类型?下面是我在函数中使用的使其随机显示的内容。 session_start(); add_filter(\'posts_orderby\', \'edit_posts_orderby\'); function edit_posts_orderby($orderby_statement) { $seed = $_SESSION[\'seed\'];
ExcludeCat函数颠倒博客帖子的顺序
我正在使用下面的代码从主页上的查询中删除类别#5377。然而,出于某种原因,此代码也颠倒了博客帖子的顺序。如何将此代码更改为仅删除类别#5377并保持相同的帖子顺序?function excludeCat($query) { if ( $query->is_home ) { $query->set(\'cat\', \'-5377\'); } return $query; } add_filter(\'pr
Pre_Get_Posts导致自定义帖子出现在‘Pages’菜单下
为了启用自定义后期归档的分页,我添加了pre\\u get\\u posts函数。但是,有趣的是,这导致我的自定义帖子在“页面”菜单下被复制。以下是导致问题的代码。请告知。 function truck_pre_pagination( $qry ) { if ( $qry->is_main_query() ) { $qry->set(\'orderby\',\'date\'); $qry->set
在归档页面类别中显示自定义帖子类型时出现问题
我在显示自定义帖子类型的帖子类别时遇到了问题。然后我找到了解决问题的方法。我在函数页中编写了以下代码:function my_blog_category( $query ) { if ( is_post_type_archive( \'blog\') && $query->is_main_query() ) { $action = (isset($_REQUEST[\'ac\'])) ? $_REQUEST[\'ac\'] : \'none\';
在搜索中仅包括当前用户的帖子
我是一个新的WP插件开发人员。我希望搜索页面只包括当前用户的帖子。我首先添加了一个新功能read_others_posts 仅限管理员和编辑。然后我尝试了以下代码,将其放置在函数中并将其挂接到pre_get_posts 措施:if( !current_user_can(\'read_others_posts\') ) $query->set( \'author\', get_current_user_id() ); 对于所有其他查询(包括在admin和home中),此“过滤
对Pre_Get_POST上的元数据使用POSTS_WHERE
假设您有一些代码可以使用pre_get_postse、 g。add_action( \'pre_get_posts\', \'be_exclude_category_from_blog\' ); function be_exclude_category_from_blog( $query ) { if( $query->is_main_query() && $query->is_home() ) { $quer
POST__IN不使用PRE_GET_POST,但POST__NOT_IN可以工作
我有一个动作设置pre_get_posts 我想用它post__in 在…上我使用以下代码作为测试:$query->set(\'post__not_in\', array(74485,1528,71460)); 这样一来,职位总数就减少了这3个。但是,如果我想使用post__in 只回那3个帖子?我试过:$query->set(\'post__in\', array(74485,1528,71460)); 但那没用。我想可能是因为post__not_in 已经被使用了(正如
使用PRE_GET_POSTS排除具有特定标记的自定义发布类型
我有一个归档页面,其中列出了一个名为“事件”的自定义帖子类型。我有标记为“regular”的事件帖子(标记的id为53)。我想把这些排除在外。我尝试使用pre\\u get\\u posts,然后使用$query->set(\'tag\\uu not\\u in\',array(\'53\')),但我认为tag\\uu not\\u in不能用于自定义post类型。有没有办法解决这个问题?add_action( \'pre_get_posts\', \'exclude_regular_tag\');