Extensible code

时间:2013-01-02 作者:urok93

我想以一种可扩展的方式编写这段代码。

$my_item = array(
\'post_title\' => $item->get_title(),
\'post_content\' => \'\',
\'post_status\' => \'publish\',
\'post_excerpt\' => $item->get_description(),
\'post_type\' => \'post\'
);              
如果我在插件中使用它,我希望能够创建另一个插件,可以更改该数组并提供不同的值或参数。我该怎么做?

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

提供一个过滤器:

$my_item = apply_filters( 
    \'plugin_name_item_args\',
    array(
        \'post_title\'   => $item->get_title(),
        \'post_content\' => \'\',
        \'post_status\'  => \'publish\',
        \'post_excerpt\' => $item->get_description(),
        \'post_type\'    => \'post\'
    ),
    $item # pass the $item object to the filter
);
插件现在可以通过以下方式更改这些值:

add_filter( \'plugin_name_item_args\', \'another_plugin_filter\', 10, 2 );

function another_plugin_filter( $args, $item )
{
    $args[\'post_type\'] = \'page\';
    return $args
}

结束

相关推荐

如何理解ACTIVE_PLUGINS OPTION_VALUE从数据库中启用和禁用某些插件?

谁能解释一下如何解释和理解WordPress中的active\\u plugins option\\u value字符串吗。然后使用此字符串/数组禁用和激活特定插件?以下是一个示例:a:8:{i:0;s:21:\"adrotate/adrotate.php\";i:1;s:19:\"akismet/akismet.php\";i:2;s:33:\"better-related/better-related.php\";i:3;s:17:\"clicky/clicky.php\";i:4;s:49:\"cu