Как настроить плагин «Daily Tip»
1. Установите и активируйте плагин
- Откройте WordPress → Плагины → Добавить новый
- Нажмите «Загрузить плагин» и выберите файл daily-tip-plugin.zip
- Активируйте плагин
2. Добавьте несколько советов
- Откройте новое меню «Daily Tips» в панели администратора
- Нажмите «Добавить новый» (Add New) и введите заголовок и содержимое
3. Измените заголовок в настройках
- Перейдите в Настройки → Daily Tip Settings
- Введите заголовок, который будет отображаться перед советом (например, «💡 Совет дня»)
4. Используйте шорткод
- Чтобы отобразить совет, добавьте шорткод
No tips available.
на страницу или в запись. - Использование шорткода:
No tips available.
Код моего плагина:
<?php
/**
* Plugin Name: Daily Tip
* Description: Displays a random tip using the shortcode [daily_tip].
* Version: 1.1
* Author: Bogdan Viblyy
*/
if ( ! defined( 'ABSPATH' ) ) exit;
function dtp_register_daily_tip_post_type() {
register_post_type( 'daily_tip',
[
'labels' => [
'name' => 'Tips',
'singular_name' => 'Tip',
'add_new' => 'Add New Tip',
'add_new_item' => 'Add New Tip',
'edit_item' => 'Edit Tip',
'new_item' => 'New Tip',
'view_item' => 'View Tip',
'search_items' => 'Search Tips',
'not_found' => 'No tips found',
'not_found_in_trash' => 'No tips found in Trash',
'all_items' => 'All Tips',
'menu_name' => 'Daily Tips',
'name_admin_bar' => 'Tip',
],
'public' => true,
'has_archive' => false,
'show_in_rest' => true,
'supports' => ['title', 'editor'],
'menu_icon' => 'dashicons-lightbulb',
]
);
}
add_action( 'init', 'dtp_register_daily_tip_post_type' );
function dtp_add_settings_page() {
add_options_page(
'Daily Tip Settings',
'Daily Tip Settings',
'manage_options',
'daily-tip-settings',
'dtp_render_settings_page'
);
}
add_action( 'admin_menu', 'dtp_add_settings_page' );
function dtp_register_settings() {
register_setting( 'dtp_settings_group', 'dtp_tip_title' );
}
add_action( 'admin_init', 'dtp_register_settings' );
function dtp_render_settings_page() {
?>
<div class="wrap">
<h1>Daily Tip Settings</h1>
<form method="post" action="options.php">
<?php settings_fields( 'dtp_settings_group' ); ?>
<?php do_settings_sections( 'dtp_settings_group' ); ?>
<table class="form-table">
<tr valign="top">
<th scope="row">Tip Section Title</th>
<td>
<input type="text" name="dtp_tip_title" value="<?php echo esc_attr( get_option('dtp_tip_title', '💡 Tip of the Day') ); ?>" style="width: 300px;" />
<p class="description">This title will appear above the random tip.</p>
</td>
</tr>
</table>
<?php submit_button(); ?>
</form>
</div>
<?php
}
function dtp_random_tip_shortcode() {
$args = [
'post_type' => 'daily_tip',
'posts_per_page' => 1,
'orderby' => 'rand',
];
$tip_query = new WP_Query( $args );
if ( $tip_query->have_posts() ) {
ob_start();
$custom_title = get_option('dtp_tip_title', '💡 Tip of the Day');
echo '<div class="daily-tip">';
echo '<h3>' . esc_html($custom_title) . '</h3>';
while ( $tip_query->have_posts() ) {
$tip_query->the_post();
echo '<strong>' . get_the_title() . '</strong>';
echo '<p>' . get_the_content() . '</p>';
}
echo '</div>';
wp_reset_postdata();
return ob_get_clean();
} else {
return '<p>No tips available.</p>';
}
}
add_shortcode( 'daily_tip', 'dtp_random_tip_shortcode' );