繁体   English   中英

将功能从functions.php移动到插件

[英]Moving function from functions.php to plugin

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

但是我有以下工作代码,(这是代码的一小部分(但正在工作)),如果我在我的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仅在我的插件文件中不运行。 我真的有0线索是什么原因造成的:/

编辑2:

基本上,该功能似乎没有问题,因为如果我更改了加载时的位置(在fucntion.php中),它的工作原理就很好。

  1. 问题是add_action保存钩子(可能)是因为
  2. 插件是实时/有效/有效的(已通过var dumbs测试)
  3. 如果add_action在functions.php中,而在插件文件中,则该函数也起作用。
    1. 没有其他插件处于活动状态,默认为27,主题

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

编辑3,如果我将save_post行更改为:

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

有用

也许这可以解决问题:

<?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' );

?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM