当前位置: 首页 > 知识库问答 >
问题:

Wordpress:register\u activation\u hook在我的插件上不起作用

松英叡
2023-03-14

我正在创建一个新的插件测试,当我在我的wordpress插件区激活时,什么都没有发生。。。

有人有同样的疑问吗?我没有任何错误消息,只是没有发生什么...

提前谢谢。

<?php
/*
Plugin Name: My Admin
Plugin URI: 
Description: Seu admin personalizado.
Version: 0.1.4
Author: Vinícius Lourenço
Author URI: 
Text Domain: my-admin
Domain Path: /languages
*/

register_activation_hook(__FILE__, 'ativar' );

function ativar(){
    add_action('admin_menu','vilourenco_create_menu');
}


function vilourenco_create_menu(){
    add_menu_page('Menu de Opções','ViLourenco Settings','administrator', 'admin_fera' , 'vilourenco_menu_page','dashicons-format-status');
    add_action('admin_init','vilourenco_register_settings');
}


function vilourenco_register_settings(){
    register_setting('vilourenco-options', 'nome');
    register_setting('vilourenco-options', 'idade');
    register_setting('vilourenco-options', 'cidade');
}

function vilourenco_menu_page(){
    ?>
<div class="wrap">
<?php screen_icon(); ?>
<h2>Vinicius Plugin</h2>

<?php if( isset( $_GET['settings-updated'] ) ) : ?>
    <div class="updated">
      <p>Configurações salvas com sucesso!</p>
    </div>
    <?php endif; ?>

<form method="post" action="options.php">
    <?php settings_fields( 'vilourenco-options' ); ?>
    <?php do_settings_sections( 'vilourenco-options' ); ?>
    <table class="form-table">
    <tr valign="top">
    <th scope="row">Nome</th>
    <td><input type="text" name="nome" value="<?php echo esc_attr( get_option('nome') ); ?>" />    </td>
    </tr>

    <tr valign="top">
    <th scope="row">Idade</th>
    <td><input type="text" name="idade" value="<?php echo esc_attr( get_option('idade') ); ?>" />   </td>
    </tr>

    <tr valign="top">
    <th scope="row">Porte</th>
    <td><input type="text" name="cidade" value="<?php echo esc_attr( get_option('cidade') ); ?>" /></td>
    </tr>
</table>

<?php submit_button(); ?>

</form>
</div>

<?php } ?>

共有1个答案

龚浩宕
2023-03-14

register_activation_hook的回调只执行一次,即在激活时。它通常用于添加选项或创建数据库表。

注册插件设置和菜单应该在单独的函数中完成,并连接到(admin)init。

http://codex.wordpress.org/Function_Reference/register_activation_hook

 类似资料:
  • 问题内容: 当我在带有选项create emulator的Jenkins上运行测试时,出现以下问题: [android]无法创建Android模拟器:无法运行AVD创建命令 当我以现有仿真器为目标时,会遇到以下问题: 致命:C:\ Windows \ system32 \ config \ systemprofile.android \ avd \ AVD_2.2.ini(系统找不到指定的路径)j

  • 我想将视图渲染为pdf,并尝试使用Grails渲染插件2.0.3 我尝试了最简单的gsp-file开始: 在控制器中: 最后是: 我错过了什么?或者它不应该与这个版本的grails(3.2.4)一起使用? 也许有更好的插件可以使用?

  • 问题内容: 我试图在IntelliJ IDEA CE中使用NodeJS插件,但无法使其正常工作。插件安装完毕并重新启动IDE后,它说找不到NodeJS必需的Javascript插件(尽管在文档中没有说明)。 NodeJS插件仅在IntelliJ IDEA的许可版本中有效吗? 问题答案: NodeJS插件需要IntelliJ IDEA Ultimate,因为它依赖于仅在商业版中可用的JavaScri

  • 我使用了,并在那里声明了manifestEntries。 从

  • 我正在尝试添加自定义endpoint(自定义endpoint”是指一个不被WP识别为标准URL的任意URL,如permalink等。)我用的是WordPress插件样板“https://github . com/DevinVinson/WordPress-Plugin-Boilerplate”。 我想在自定义endpoint上发送一个API请求。我创建了一个新的类文件来注册endpoint,并将这

  • 我有一种字体在IE8和IE9以及所有其他浏览器中都能正常工作,但第二种字体只在IE9和其他浏览器中工作。在IE8中,我得到了一个错误: “CSS3111:@font-face遇到未知错误。” 我一直在四处看书,尝试了很多事情,但都没有运气。 我的代码是: 我试过用几个不同的生成器多次重新生成eot,玩过CSS,玩过头,玩过域,等等,但是看起来它们都很好。如前所述,相同的代码在相同的,只是指向不同的