Wordpress Dashboard виджет
Предыдущий разработчик нашего сайта использовал очень странный подход, создав виджет в основных файлах WordPress в /wp-admin/includes/dashboard.php
Этот виджет "верхнее предложение" запрашивает предложение и URL с панели инструментов и размещает его в заголовке главной страницы.
Как создать этот виджет панели инструментов, но не записывать его в файлы ядра WordPress и быть совместимым с Wordpress 3.8.1 и Wordpress Multisite, чтобы на некоторых сайтах также было свое "верхнее предложение"?
<div id="dashboard-widgets" class="metabox-holder<?php echo $columns_css; ?>">
<div id="top_sentence" class="postbox" style='margin-left: 5px; width: 98%;'>
<?php
require_wp_db();
global $wpdb;
$topSentenceTitle = $wpdb->get_var( $wpdb->prepare( "SELECT settings_value FROM wp_settings WHERE settings_name like 'top sentence title';" ) );
$topSentenceUrl = $wpdb->get_var( $wpdb->prepare( "SELECT settings_value FROM wp_settings WHERE settings_name like 'top sentence url';" ) );
$topSentenceResult = "";
if ( $_SESSION['top-sentence-updated'] == 'true' )
{
$_SESSION['top-sentence-updated'] = '';
$topSentenceResult = 'Updated';
?>
<script type="text/javascript">
jQuery(document).ready(function($) {
$('#top-sentence-result').fadeIn(1000).delay(1000).fadeOut(1000);
});
</script>
<?php
}
if ( is_blog_admin() && current_user_can('edit_posts') )
{
?>
<h3 class='hndle'><span>Top sentence</span></h3>
<div class="inside">
<form action='action.php' method='post' style='margin:0;padding:0;'>
//action.php doesn't exist in WordPress 3.8.1
<div style='float: left; width: 100%; margin-bottom: 3px;'>
<h4 id="top-sentence-title" style='float: left;font-size: 12px; font-weight: normal; padding-top: 5px; text-align: right; width: 5.5em;'>
<label for="top-sentence-title-input" style='font-family: "Lucida Grande",Verdana,Arial;margin-right: 10px;vertical-align: middle;cursor: pointer;'>Sentence:</label>
</h4>
<div style='margin: 0 0 1em 5em;'>
<input style='float:right;margin:0;width:99%;' id="top-sentence-title-input" type="text" value="<?= $topSentenceTitle ?>" autocomplete="off" name="top-sentence">
</div>
<div style='clear: both;margin-bottom:5px;'></div>
<h4 id="top-sentence-url" style='float: left;font-size: 12px; font-weight: normal; padding-top: 5px; text-align: right; width: 5.5em;'>
<label for="top-sentence-url-input" style='font-family: "Lucida Grande",Verdana,Arial;margin-right: 10px;vertical-align: middle;cursor: pointer;'>URL:</label>
</h4>
<div style='margin: 0 0 1em 5em;'>
<input style='float:right;margin:0;width:99%;' id="top-sentence-url-input" type="text" value="<?= $topSentenceUrl ?>" autocomplete="off" name="top-sentence-url">
</div>
</div>
<div id='top-sentence-result' style="display: none;margin-left:6em;float: left;margin-top: 5px;color: red;"><span><?= $topSentenceResult ?></span></div>
<div id="publishing-action" style='float:right; width: 100px;'>
<input id="publish_sentence" class="button-primary" type="submit" value="Publish" tabindex="5" accesskey="p" name="do_publish_sentence">
</div>
</form>
<div style='clear: both;'></div>
</div>
<?php
}
?>
</div>
1 ответ
Это то, для чего плагины. Просто создайте файл PHP, поместите основной заголовок плагина и перенесите в него весь свой собственный код:
<?php
/**
* Plugin Name: My dashboard widget
*/
Загрузить на wp-content/plugins
папку и активировать ее на одном сайте или активировать сеть на мультисайте.
Вы можете начать создавать очень простой плагин, используя пример кода Кодекса на странице API виджетов Dashboard. Кроме того, вы найдете много примеров виджетов Dashboard в WordPress.