【问题标题】:Moving function from functions.php to plugin将函数从functions.php移到插件
【发布时间】:2018-11-13 16:01:11
【问题描述】:

我可能在做一些愚蠢的事情。

但我有以下工作代码,(这是代码的一小部分(但工作))如果我在我的 functions.php 中有此代码,它工作正常,但是当我将它添加到自定义插件中时,它确实不是

function update_booklink_field( $post_id ) {
if( ! ( wp_is_post_revision( $post_id) || wp_is_post_autosave( $post_id ) ) ) {

update_post_meta( $post_id, 'prijstest', 'testvalue' ); 
}
}
add_action( 'save_post', 'update_booklink_field' );

这是我在插件中的代码,我有什么明显的遗漏吗?或者我需要采取额外的步骤来触发插件中的功能吗?

<?php
/**
 * Plugin Name: aaautofill
*/

  function update_booklink_field( $post_id ) {
    if( ! ( wp_is_post_revision( $post_id) || wp_is_post_autosave( $post_id ) ) ) {

    update_post_meta( $post_id, 'prijstest', 'testvalue' ); 
    }
    }
    add_action( 'save_post', 'update_booklink_field' );






?>

编辑:

到目前为止我发现了什么: 如果我搬家

add_action('save_post', 'update_booklink_field');

到函数文件,然后它就可以工作了。 该插件已激活,但 save_post 在我的插件文件中时不会运行。我真的不知道是什么原因造成的:/

编辑 2:

基本上该函数似乎没有问题,因为如果我更改其加载时的位置(在 fucntion.php 中)它可以正常工作。

  1. 问题是 add_action 保存挂钩(可能)因为
  2. 插件是 live/active/works(用 vardumbs 测试)
  3. 如果 add_action 在functions.php 中与在插件文件中时,该函数也可以工作。
    1. 没有其他插件上线,默认二十七,主题

这是否意味着它与加载内容的顺序有关? (或者我忽略了一些愚蠢的事情?)

编辑 3,我找到它/让它工作 如果我将 save_post 行更改为:

add_action('save_post', 'update_booklink_field', 50, 50);

有效

【问题讨论】:

  • 您遇到什么错误?它是如何“不工作”的?
  • 我没有收到错误,它只是不更新​​字段(如果该代码在 functions.php 文件中,它会正常更新)
  • 你确定你激活了插件吗?如果您只是在函数外部执行var_dump('testing'); 之类的测试 var_dump 会发生什么?它会出现在前端吗?
  • 是的,插件已激活,如果我添加“var_dump('testing');”在该功能之外,我在前端看到“string(7)”“testing”
  • 那很好。也就是说,我不知道问题是什么,但也许 $post_id 变量不起作用。也许尝试定义它$post_id = get_the_ID();

标签: php wordpress plugins


【解决方案1】:

也许这样可以解决问题:

<?php
/**
* Plugin Name: aaautofill
*/

function update_booklink_field( ) {

global $post;

if( ! ( wp_is_post_revision( $post->ID ) || wp_is_post_autosave( $post->ID ) ) ) {

 update_post_meta( $post->ID, 'prijstest', 'testvalue' ); 
}
}
add_action( 'save_post', 'update_booklink_field' );

?>

【讨论】:

  • 感谢您的关注,但恐怕不会,再次出现同样的问题,如果我的插件中有这个问题,它就不起作用。如果我删除 add_action 行,并将该部分添加到我的 functions.php 中。它再次正常工作
猜你喜欢
  • 1970-01-01
  • 2015-05-24
  • 2022-08-07
  • 1970-01-01
  • 2019-12-27
  • 2012-01-28
  • 2019-07-18
  • 1970-01-01
  • 2019-02-20
相关资源
最近更新 更多