wordpress 中 add_action的使用方法
时间: 2023-05-12 17:03:51 浏览: 93
add_action是WordPress中的一个函数,用于在特定的WordPress动作发生时执行特定的函数。它的基本语法是:
add_action( $hook, $function_to_add, $priority, $accepted_args );
其中,$hook是要执行的WordPress动作的名称,$function_to_add是要执行的函数的名称,$priority是函数的优先级,$accepted_args是函数接受的参数数量。
例如,要在WordPress的文章页面中添加一个自定义的内容块,可以使用以下代码:
function my_custom_content() {
echo '<div class="my-custom-content">这是我的自定义内容块</div>';
}
add_action( 'the_content', 'my_custom_content' );
这个代码将在WordPress的文章页面中的文章内容下方添加一个自定义的内容块。
相关问题
add_action() 方法
`add_action()` 方法是WordPress中用于向特定的动作钩子添加一个函数或方法的函数。它的语法如下:
```php
add_action( string $hook, callable $function_to_add, int $priority = 10, int $accepted_args = 1 );
```
其中,参数含义如下:
- `$hook`:必需,要添加函数的动作钩子的名称。
- `$function_to_add`:必需,要添加的函数或方法的名称或回调函数。
- `$priority`:可选,指定添加函数的优先级。数字越小优先级越高,默认为10。
- `$accepted_args`:可选,指定添加函数的参数数量,默认为1。
举个例子,如果我们想要在WordPress文章正文下方添加一段内容,可以使用以下代码:
```php
function my_custom_content() {
echo "<p>This is my custom content.</p>";
}
add_action( 'the_content', 'my_custom_content' );
```
这样,当文章正文渲染时,`my_custom_content()` 函数会被调用,并在文章正文下方添加一段自定义内容。
WordPress后台设置页面实现使用媒体上传工具上传图片
要在WordPress后台设置页面实现使用媒体上传工具上传图片,您需要使用WordPress提供的内置功能——媒体库。以下是一些基本步骤:
1. 在设置页面中添加一个"上传图片"按钮或者链接,以便用户可以点击它来打开媒体库。
2. 在JavaScript中编写代码,用于在用户点击"上传图片"按钮时打开媒体库。
3. 在处理上传的代码中,您需要将上传的图片信息保存在WordPress的选项中。您可以使用WordPress提供的update_option()函数来完成这个任务。
下面是一个示例代码,可以帮助您完成这个任务:
```
<?php
// 添加设置页面
add_action('admin_menu', 'my_plugin_menu');
function my_plugin_menu() {
add_options_page(
'My Plugin Settings',
'My Plugin',
'manage_options',
'my-plugin',
'my_plugin_settings_page'
);
}
// 渲染设置页面
function my_plugin_settings_page() {
?>
<div class="wrap">
<h1>My Plugin Settings</h1>
<form method="post" action="options.php">
<?php
settings_fields('my-plugin-settings');
do_settings_sections('my-plugin-settings');
?>
<table class="form-table">
<tr>
<th scope="row">图片 URL:</th>
<td>
<input type="text" name="my_plugin_image_url" value="<?php echo esc_attr(get_option('my_plugin_image_url')); ?>" />
<button class="button upload_image_button" data-target="my_plugin_image_url">上传图片</button>
</td>
</tr>
</table>
<?php submit_button(); ?>
</form>
</div>
<?php
}
// 添加设置字段
add_action('admin_init', 'my_plugin_settings_init');
function my_plugin_settings_init() {
register_setting(
'my-plugin-settings',
'my_plugin_image_url'
);
}
// 添加媒体上传脚本
add_action('admin_enqueue_scripts', 'my_plugin_admin_scripts');
function my_plugin_admin_scripts($hook) {
if('settings_page_my-plugin' != $hook) {
return;
}
wp_enqueue_media();
wp_register_script('my-plugin-admin-script', plugins_url('admin.js', __FILE__), array('jquery'), '1.0.0', true);
wp_enqueue_script('my-plugin-admin-script');
}
// 处理上传的图片
add_action('wp_ajax_my_plugin_upload_image', 'my_plugin_upload_image');
function my_plugin_upload_image() {
check_ajax_referer('my-plugin-upload-image', '_wpnonce');
$attachment_id = media_handle_upload('file', 0);
if(is_wp_error($attachment_id)) {
wp_send_json_error(array('message' => $attachment_id->get_error_message()));
}
$image_url = wp_get_attachment_url($attachment_id);
update_option('my_plugin_image_url', $image_url);
wp_send_json_success(array('image_url' => $image_url));
}
```
在这个示例代码中,我们使用了WordPress提供的add_options_page()函数来添加一个设置页面,并在设置页面中使用了一个"上传图片"按钮,允许用户上传图片。我们还使用了WordPress提供的wp_enqueue_media()函数来加载媒体上传脚本,并在点击"上传图片"按钮时打开媒体库。在处理上传的代码中,我们使用了WordPress提供的media_handle_upload()函数将上传的图片保存到媒体库中,并使用update_option()函数将图片URL保存在WordPress的选项中。
希望这个示例代码可以帮助到您。如果您有其他问题,可以随时问我。