【问题标题】:WordPress functions.php: how to apply update_option()?WordPress functions.php:如何应用 update_option()?
【发布时间】:2011-09-04 04:21:30
【问题描述】:

我正在尝试为我的 WP 用户设置默认的图像链接 URL,以便它不包含默认的 url 链接。我做了一些研究,我知道函数在 wp-admin/options.php 中:

update_option('image_default_link_type','file');

我不想弄乱核心文件,而是想把它放到functions.php中,但永远不知道实现这样的东西的正确方法!这就是我的functions.php中到目前为止的内容:

<?php
    update_option('image_default_link_type','none');
?>

这显然行不通:它需要正确的设置!在functions.php中实现这个的正确方法是什么?

另外:我想知道未来如何自己实现这样的功能的策略?例如,我永远不知道我是否应该使用 add_filter 或 do_action,以及我需要如何传递参数。我还没有找到一本书或帖子可以很好地解释这一点,并且可以通过示例向我展示。在这方面任何好的线索也会很棒!

【问题讨论】:

    标签: wordpress function customization


    【解决方案1】:

    从 Wordpress 法典开始。访问解释 Hooks、Actions 和 Filters 的 plugin API(这就是你正在做的事情)。然后查看Action Reference,它提供了你的钩子列表。

    在这里你会找到钩子update_option_OPTIONNAME。来自法典的描述:

    在 WordPress 选项被 update_option 更新后运行 功能。动作函数参数:旧选项值,新选项 价值。您必须为所需的特定选项添加操作 响应,例如 update_option_foo 选项“foo”时响应 已更新。

    从提问者的评论中添加代码:

    function inventory_linkurl_setting() { 
       update_option('image_default_link_type','none'); 
    } 
    add_action('admin_init', 'inventory_linkurl_setting'); ?>
    

    【讨论】:

    • 谢谢!这很有帮助。这是我根据您的帮助和文档提出的:&lt;?php function inventory_linkurl_setting() { update_option('image_default_link_type','none'); } add_action('update_option', 'inventory_linkurl_setting'); ?&gt; 它似乎奏效了!如果有更好的方法来编写这个函数,请告诉我。
    • 我注意到上述函数的一个问题是它总是会删除 URL。因此,如果我在保存之前或之后有链接 URL 的值,它总是会删除该 URL。我将如何应用此功能,以便仅在首次上传时将链接 URL 设置为“无”,但如果之前保存或手动添加 URL,则保留该 URL?
    • 查看 get_option - 在将其设置为无之前检查它。 codex.wordpress.org/Function_Reference/get_option
    • 谢谢,会调查的! (仍有问题,但有信心我会解决的!)
    • @JulianWagner - 感谢您指出这一点。我将示例代码更改为在 admin_init 而不是选项更新上执行。干杯!
    猜你喜欢
    • 1970-01-01
    • 2019-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-05
    • 2017-03-04
    相关资源
    最近更新 更多