Questions tagged «hooks»

插件和主题扩展WordPress核心功能的方法。

3
生成休眠钩子引用
似乎很多插件开发人员都花时间添加过滤器/操作挂钩,以使用户可以调整其产品的功能。很棒,但是他们通常不做的是提供钩子列表以及它们接受多少个参数。 有没有人找到最好的自动方式来指向插件(或主题)目录并查看所有可用钩子的列表? 我似乎有些扫描钩子的插件,但据我所知,它们向您显示了实际上正在调用哪些插件来呈现给定页面。我得到的可以很方便。但是有时候,如果我知道我正在与特定的插件交互,我想知道它可能让我钩住动作或过滤器的每个地方。 因此,我真正要寻找的是给定插件根目录将创建一个列表的列表,其中每个项目均包括: 标签 类型(动作或过滤器) 参数数量 在源中被称为(通过do_action()或apply_filter())的位置 脚本会很棒,因为这大概可以很好地将整个事情HTML化,并在每个插件的管理UI中向我展示。但是,即使输出有用的静态文件的命令行脚本也很棒。
10 plugins  hooks 

2
如何在前端的插件中实现WordPress虹膜选择器?
这个问题在这里被问同样的问题,因为我,但没有足够的答案,也没有选择正确的答案,所以我再次问,如果我在一个更连贯的方式问我可能会得到回应希望。 我正在尝试实现在Wordpress主题自定义API窗格中看到的颜色选择器轮,以选择颜色。使用挂钩时,加载脚本和样式工作正常,“ admin_enqueue_scripts”可以工作,但是尝试使用挂钩在前端加载这些脚本,“ wp_enqueue_scripts”不起作用。样式入队,但脚本不入队。 我想避免将文件复制到我的插件中,而不会复制与Wordpress捆绑在一起的文件。必须有一种方法可以使Iris拾色器在我没有看到的前端工作。 对于那些想知道为什么要这样做的人,我正在开发一个插件,该插件在屏幕的侧面添加了一个弹出式面板,可让您对网站进行实时临时样式更改,而无需通过wp-admin登录面板。

1
当我们只需使用add_filter时,使用add_action有什么价值?
我刚刚研究了wordpress代码,发现了add_action的定义: function add_action($tag, $function_to_add, $priority = 10, $accepted_args = 1) { return add_filter($tag, $function_to_add, $priority, $accepted_args); } 现在,为什么我们浪费一个CPU周期仅调用另一个我们可以简单完成的函数,然后又不必为同一件事记住两个不同的函数名。
10 hooks 

1
在Wordpress插件安装列表中添加新标签
当用户从WP Admin的“添加插件”区域搜索插件时,我想在当前选项卡旁边添加一个新选项卡(带有指向页面的链接)。 我想要链接的位置在下面的屏幕快照中标记。 在@ http://codex.wordpress.org/Adding_Administration_Menus上查找了它,但没有成功。 WP允许吗? 提前致谢。

5
挂钩优先级是否有限制?
当我希望过滤器或操作挂钩覆盖所有其他过滤器时,我将其分配为的优先级999。但是,最近我看到有些人使用极限值作为优先级,例如20000,甚至99999 除了使用如此高的优先级是荒谬的事实,它们是否真的有效?挂钩优先级是否有限制?如果超过限制会怎样?使用极端优先级时是否存在性能差异? 更新: @harke表明堆栈溢出的数量由限制PHP_INT_MAX
9 hooks 

2
计数和显示数据库查询
我正在寻找一种解决方案,如何计算和显示WordPress网站中的所有查询。有人知道,如果有一个好的插件? 否则,这将是在控制台上检查查询的解决方案,因为我在控制台上进行了大量工作。

1
请解释这些钩子如何工作
我已经阅读了有关钩子和动作的信息,并且我知道当我们看到do_action('some_hook')它意味着主题的某个位置add_action('some_hook', function() {...});或功能some_hook()存在functions.php。 但是,这是什么?: 从woocommerce / includes / class-wc-checkout.php第943行: public function process_checkout() { try { ///////////// do_action( 'woocommerce_before_checkout_process' ); <----!!! if ( WC()->cart->is_empty() ) { throw new Exception( sprintf( __( 'Sorry, your session has expired. <a href="%s" class="wc-backward">Return to shop</a>', 'woocommerce' ), esc_url( wc_get_page_permalink( 'shop' ) ) ) ); } …
8 hooks  actions 

4
是否可以完全停止WP_Query检索帖子?
我正在尝试使用WP Redis缓存整个$ wp_query对象,其键为$ query_vars_hash。 这是如何$wp_query添加到$wp_object_cache: add_action('wp', function($wp) { if ( is_admin() ) return; global $wp_query; if ( !wp_cache_get($wp_query->query_vars_hash, 'globals') ) { wp_cache_add($wp_query->query_vars_hash, $wp_query, 'globals'); } }); 然后,我需要先检查查询是否已缓存,然后WP_Query才能检索帖子: add_action('pre_get_posts', function($query) { if ( is_admin() ) return; $cached_query = wp_cache_get($query->query_vars_hash, 'globals'); if ($cached_query) { $GLOBALS['wp_query'] = &$cached_query; return; // Return immediately to …
8 wp-query  hooks  cache 

2
更好地触发带有参数的特定挂钩或通用挂钩?
我正在创建一个表单插件来处理可被开发人员使用动作/过滤器挂接到的表单。 我的插件需要能够使用不同的过滤器集来处理不同的表单,我看到了两种方法。 方法1 每种形式的特定挂钩的火。 因此,这样的代码可以在我的插件中称为表格: $formId = 'contact'; $errors = apply_filters('forms_validate_' . $formId, $errors, $data); 可以这样使用: add_filter('forms_validate_contact', function($errors, $data){ if(empty($data['name'])){ $errors['name'] = 'Name is required'; } return $errors; } 10, 2) 方法2 将参数传递给调用函数。 因此,这样的代码可以在我的插件中称为表格: $formId = 'contact'; $errors = apply_filters('forms_validate', $formId, $errors, $data); 可以这样使用: add_filter('forms_validate', function($formId, $error, $data){ switch($formId){ case …
8 plugins  hooks 

2
在Woocommerce产品标题中添加字幕
我在使用Pagelines Framework构建的网站上使用WooCommerce。我需要在网站上任何出现在产品名称下方的字幕/可自定义字段。实际上,WooCommerce不提供该选项。 我尝试使用自定义字段,但WooCommerce也使用这些字段,并输出了一些我不想要的东西以及字幕。如果我将自定义字段命名为“ bookauthor”,那么此代码是否可以仅显示我想要的自定义字段? <?php echo get_post_meta($id, "bookauthor", true); ?> 如果是这样,我如何使新字段的输出紧跟在前端的产品标题之后? 我在这个php文件中找到了我需要的钩子(我想,我不知道php,这就是为什么我要问你): <?php /* * @hooked woocommerce_template_single_title - 5 * @hooked woocommerce_template_single_price - 10 * @hooked woocommerce_template_single_excerpt - 20 * @hooked woocommerce_template_single_add_to_cart - 30 * @hooked woocommerce_template_single_meta - 40 * @hooked woocommerce_template_single_sharing - 50 */ ?> 我知道如何过滤掉,但如何将自定义字段添加到该列表中? 还是有完全不同的方式来实现我所需要的? 衷心感谢任何可以提供帮助的人。

1
按下设置按钮时触发自定义操作
这是我的第一个wordpress插件,在使其正常工作时遇到了很多麻烦,它几乎可以正常工作,但是我找不到实现此特定目的的方法。 基本上,我有插件的自定义设置页面,它可以毫无问题地保存所有内容,但问题是,如何才能使我的其他按钮(在同一设置页面内)触发这种情况下的同步操作。 因为我的插件在配置后会触发另一个在表上创建/更新记录的操作,但是我第一次需要运行同步来从wordpress的旧帖子中创建/更新记录。 编辑: wsd-parse-api上的插件源代码。

2
动作挂钩,用于自定义税项编辑
因此,我在我的模板文件functions.php中有一个函数,该函数可缓存包含自定义分类法术语的搜索表单。当我添加/删除/编辑特定分类法的术语时,我想刷新缓存(或删除一个缓存组)。 可能吗?也许使用do_action,但是要使用哪个钩子?谢谢
8 hooks 

2
最早可靠获取$ post / $ posts的钩子
我可以钩到最早可以$post/$posts在前端和后端访问全局变量的位置的动作是什么?我尝试遍历Codex参考资料,Adam Brown的参考资料,并在源代码中浏览了几次,但运气不好找到一个好的参考资料。 pre_get_posts为时过早;posts_selection如果您想在回调期间进行第二次get_posts()调用,则使用无效。并且template_redirect不会在管理员端运行。the_post可能早于template_redirect前端,但也不会在后端运行。理想情况下,我希望某些东西可以在get_post()/get_posts()返回之前运行,但是我看不到任何类似的东西。 我过去曾使用过the_posts过滤器,但我更喜欢使用操作,因为它在技术上更正确。 现在,我只想插话两次;一次template_redirect用于前端,再一次admin_xml_ns用于后端。不过,我并不是很喜欢,因为我的逻辑在语义上与这两个钩子都不相关,并且这似乎是非常普遍的需求,应该有一个像“ post_get_posts”(ala pre_get_posts)这样的钩子可以工作双方。

3
我可以执行几次相同的动作?
我有一个包含一些设置的主题,使用,after_setup_theme但是我想编写自己的函数,也需要运行after_setup_theme。我希望将自己的东西保存在单独的文件中。我可以打after_setup_theme多次吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.