- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在查看我的 functions.php 并想知道为什么代码 A 使用 add_action
而代码 B 使用 add_filter
?
CODE A 的主要目标是包括和排除特定类别。
CODE B 的主要目标是排除特定类别。
代码A使用add_action
是否正确
和代码 B 的 add_filter
?
代码 A:显示主页的特定类别(称为“特色”),而不是“最新帖子”
function featured_category( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( 'category_name', 'featured' );
$query->set( 'category__not_in', array(60, 61) );
$query->set( 'posts_per_page', 5 );
}
}
add_action( 'pre_get_posts', 'featured_category' );
代码 B:排除搜索结果的“赞助帖子类别”
function search_filter($query) {
if ( $query->is_search && $query->is_main_query() ) {
$query->set('post_type', 'post');
$query->set( 'category__not_in', array(60, 61) );
$query->set( 'posts_per_page', 20 );
}
return $query;
}
add_filter('pre_get_posts', 'search_filter');
最佳答案
pre_get_posts
是一个 Action 而不是过滤器。 $query
通过引用传递,这就是为什么 CODE A 工作而不返回任何内容的原因。
CODE B 返回 $query
但该代码再次起作用,因为查询已通过引用传递。钩子(Hook)的返回值没有分配给任何东西。
do_action_ref_array( 'pre_get_posts', array( &$this ) );
add_action
和add_filter
在不同的上下文中使用,但代码是相同的(add_action
是add_filter
)。虽然发布的两组代码都可以正常工作,但正确的用法是
add_action
。
关于php - add_filter 与 add_action 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26458037/
在 WordPress 中,我有一个名为 designers.php 的页面模板。 加载时,它会读取slug以获取唯一ID,然后调用数据库检索设计器信息。 我想使用此信息来更改页面标题,并在标题标签中
我刚刚完成了 WordPress 功能的调试。调试让我疯狂地发现查询中的错误。我现在看到函数执行中没有错误,但结果没有通过返回输出。明显的答案是查询没有返回任何内容,但是尽管在修复查询语法之前存在错误
为什么 Ad goes here部分显示在内容之上?它应该显示在 $content 的底部.如果我返回$content直接作为return $content.'The ads goes here';
我正在查看我的 functions.php 并想知道为什么代码 A 使用 add_action 而代码 B 使用 add_filter ? CODE A 的主要目标是包括和排除特定类别。 CODE B
我正在编写将使用 json 文件的插件。因此,我需要能够在 wp-admin 的媒体中上传它们。但是,我收到标准错误“抱歉,出于安全原因,不允许使用此文件类型”。我在插件主文件的开头添加了以下代码:
我正在尝试将详细信息页面的标题更改为汽车的名称。我制作了一个插件,用汽车信息填充详细信息页面。但现在我无法让 add_filter('wp_title') 在我的插件中工作。 这是我尝试过的代码: f
我用这个 example 制作了一个简单的插件: roles)) { //check for admins if(in_array("administrator", $current_
我正在尝试将视频添加到站点的主页。我创建了一个子主题,并使用 add_filter() 将内容过滤到主页。问题是视频正在显示,但之前显示的其他内容都不会显示。 我怎样才能让视频加上原始内容显示出来?
我正在尝试将我在 ajax 调用中收到的变量传递给 add_filter 函数。 这是我的代码 add_action('wp_ajax_mht_set_partial_payment_amount',
我正在使用 WP v3.3.1,我正在尝试制作一个插件。我已经得到它半工作。它启动了,并且 add_action 有效,但由于某种原因我的过滤器没有被触发。当我用谷歌搜索时,我看到我应该这样做,但它不
我正在尝试了解 WordPress 插件,例如: apply_filters( 'gettext', $translations->translate( $text ), $text, $domain
add_filter 和有什么区别, apply_filters , add_action 和 do_action ? 我可以看到 do_action在代码中放置一个标签,然后 add_action
我需要更改或删除 使用插件在 wordpress 中标记 例如 My old title => New title 我试试 function plugin_title($content){
我是一名优秀的程序员,十分优秀!