Java, UX, HTML, CSS, WEB-design

Новые советы по WordPress Power для разработчиков шаблонов и консультантов

[ad_1]

  • Джейкоб Голдман

  • 0 Комментарии

Новые советы по WordPress Power для разработчиков шаблонов и консультантов

  • 10 минут чтения

  • WordPress, PHP, Шаблоны, Методы (WP)

Краткое резюме ↬

Это был большой год для WordPress. Если все еще оставались какие-то сомнения относительно ее потенциала в качестве полноценной системы управления контентом, то полная поддержка пользовательских таксономий и пользовательских типов записей в ядре WordPress 3.0 должна была развеять их. WordPress 3.1 сделал еще один шаг вперед, отполировав пользовательские таксономии с поддержкой запросов с несколькими таксономиями, доработав пользовательские типы сообщений с помощью встроенной поддержки шаблонов для архивов и каналов, а также представив функции (такие как «панель администратора»), которые упрощают быстрое редактирование. и добавить контент из внешнего интерфейса. В более широком сообществе мы видели невероятные наборы подключаемых модулей, такие как БаддиПресс зрелости, и даже появление независимых хостинговых сервисов, предназначенных для WordPress, таких как page.ly. Чтобы отпраздновать прогресс WordPress, давайте рассмотрим несколько новых советов, которые могут помочь разработчикам шаблонов и консультантам еще больше улучшить свою игру.

Это был большой год для WordPress. Если все еще оставались какие-то сомнения относительно ее потенциала в качестве полноценной системы управления контентом, то полная поддержка пользовательских таксономий и пользовательских типов записей в ядре WordPress 3.0 должна была развеять их. WordPress 3.1 сделал еще один шаг вперед, отполировав пользовательские таксономии с поддержкой запросов с несколькими таксономиями, доработав пользовательские типы сообщений с помощью встроенной поддержки шаблонов для архивов и каналов, а также представив функции (такие как «панель администратора»), которые упрощают быстрое редактирование. и добавить контент из внешнего интерфейса.

В более широком сообществе мы видели невероятные наборы подключаемых модулей, такие как зрелый BuddyPress, и даже появление независимых специализированных служб хостинга WordPress, таких как page.ly. Чтобы отпраздновать прогресс WordPress, давайте рассмотрим несколько новых советов, которые могут помочь разработчикам шаблонов и консультантам еще больше улучшить свою игру.

Предисловие для новых разработчиков: что такое «крючок»?

В большинстве этих советов используются основные «хуки» WordPress. Хуки — это точки в коде, которые разрешить любому количеству внешних функций «подключаться» и перехватывать код чтобы добавить или изменить поведение в определенный момент. Хуки — это фундаментальная концепция, которая позволяет использовать практически все плагины. В WordPress есть два вида хуков: действия и фильтры.

Хуки действия предназначены для того, чтобы позволить разработчикам перехватывать определенные действия и выполнять некоторые дополнительные функции. Например, когда публикуется новый пост, разработчик может захотеть добавить некоторые дополнительные функции, такие как публикация заголовка и ссылки на Twitter.

Еще после прыжка! Продолжить чтение ниже ↓

Крючки для фильтров позволить разработчику перехватывать и изменить данные, которые обрабатываются WordPress для отображения или сохранения. Например, разработчик может захотеть внедрить рекламу в контент перед отображением сообщения на экране.

Узнайте больше о хуках в официальном кодексе WordPress.

Недоиспользуемая функция пагинации

Многие замечательные плагины находятся в официальном репозитории WordPress. Но использование причудливых плагинов для добавления довольно простых функций в вашу тему часто похоже на вождение тракторного прицепа, чтобы объехать квартал. Обычно есть более легкий и умный способ: велосипед или даже машина. И хотя плагины — прекрасное решение для консультантов, готовящих полное развертывание, они неудобны для разработчиков тем, которые хотят продавать отдельные шаблоны.

WP-PageNavi — один из самых популярных плагинов WordPress; и, без сомнения, он хорошо развит. Он идеально подходит для тех, кому неудобно копаться в коде WordPress. Но знаете ли вы, что в WordPress есть функция, встроенная прямо в ядро, которая (с некоторой смекалкой в ​​отношении ее параметров) может генерировать ссылки на страницы для всего, от комментариев до архивов сообщений и страниц сообщений?

Рассматриваемая функция paginate_links(). (Для тех, кто любит порыбачить в источнике, это строка 1954 года. общий-template.php в wp-включает папка с WordPress 3.1.) Хотите верьте, хотите нет, но эта малоиспользуемая функция существует с версии 2.1. Другая функция, paginate_comment_links()на самом деле является оболочкой для этой функции, разработанной специально для пейджинговых комментариев, и она существует с версии 2.7.

Функция принимает массив параметров, что делает ее достаточно универсальной для любого вида пейджинга:

  • base Это путь для ссылок на номера страниц, не включая часть URL-адреса, относящуюся к нумерации страниц. Персонажи %_% в этом URL-адресе будет заменена часть URL-адреса, относящаяся к странице.
  • format Это «страничная» часть URL-адреса. %#% заменяет номер страницы. Например, page/%#% или ?page=%#%.
  • total Общее количество доступных страниц.
  • current Текущий номер страницы.
  • show_all Перечисляет все ссылки на страницы, а не ограничивает их определенным количеством ссылок слева и справа от текущей страницы.
  • prev_next Включает ссылки «Предыдущий» и «Следующий» (если применимо), точно так же, как вы обычно делаете с previous_posts_link() функция.
  • prev_text а также next_text Текст для размещения внутри ссылок «Предыдущая» и «Следующая».
  • end_size Количество ссылок на страницы для отображения в конце. По умолчанию 1 (например, 1 2 3 … 10).
  • mid_size­ Количество страниц, отображаемых по обе стороны от текущей страницы. По умолчанию 2 (пример: 1 … 3 4 5 6 7 … 10).
  • type Позволяет указать стиль вывода. По умолчанию используется «обычный», который представляет собой просто строку ссылок. Также можно установить в список (т.е. ul а также li представление ссылок) и массив (т.е. возвращает массив ссылок на страницы, которые потенциально могут быть выведены в коде любым способом).
  • Вы также можете добавить аргументы запроса и фрагменты.

Поскольку функция берет всю информацию, необходимую для создания ссылок на страницы, вы можете использовать ее практически для любого списка страниц, если у вас есть ключевая информация, такая как количество страниц и текущая страница. Давайте используем эту функцию для создания ссылок на страницы для архива статей, таких как категория или индекс основного сообщения:

// get total number of pages
global $wp_query;
$total = $wp_query->max_num_pages;
// only bother with the rest if we have more than 1 page!
if ( $total > 1 )  {
     // get the current page
     if ( !$current_page = get_query_var('paged') )
          $current_page = 1;
     // structure of “format” depends on whether we’re using pretty permalinks
     $format = empty( get_option('permalink_structure') ) ? '&page=%#%' : 'page/%#%/';
     echo paginate_links(array(
          'base' => get_pagenum_link(1) . '%_%',
          'format' => $format,
          'current' => $current_page,
          'total' => $total,
          'mid_size' => 4,
          'type' => 'list'
     ));
}

Вот HTML-код, сгенерированный этим кодом на первой из 10 страниц сообщений:

<ul class="page-numbers">
     <li><span class="page-numbers current">1</span></li>
     <li><a class="page-numbers" href="https://mysite.com/page/2/">2</a></li>
     <li><a class="page-numbers" href="https://mysite.com/page/3/">3</a></li>
     <li><a class="page-numbers" href="https://mysite.com/page/4/">4</a></li> 
     <li><a class="page-numbers" href="https://mysite.com/page/5/">5</a></li>
     <li><span class="page-numbers dots">...</span></li>
     <li><a class="page-numbers" href="https://mysite.com/page/10/">10</a></li>
     <li><a class="next page-numbers" href="https://mysite.com/page/2/">Next &raquo;</a></li>
</ul>

Вот скриншот разбивки на страницы визуальных коммуникаций m62, построенный с использованием em>paginate_links функция.

«Я хочу, чтобы посты назывались статьями для моего клиента».

Вы когда-нибудь хотели изменить формулировку встроенного пункта меню или уведомления? Если вы немного разбираетесь в WordPress, возможно, вы подумали о создании собственного файла переводов. Но вы можете не знать, что на самом деле вы можете «подцепить» функции перевода в WordPress, перехватывая их ввод и изменяя вывод.

Будьте осторожны с этим. Код, который вы поместите в этот хук, будет выполняться каждый раз, когда WordPress пропускает строку через свои фильтры перевода. Сложные случаи и условные операторы могут значительно увеличить нагрузку, особенно при загрузке страниц, заполненных строками перевода, таких как административные страницы. Но если вы просто хотите переименовать что-то, что смущает вашего клиента (например, изменить «Сообщения» на «Статьи» для того корпоративного клиента, который еще не ведет «блог»), то эти крючки могут быть очень удобными.

// hook the translation filters
add_filter(  'gettext',  'change_post_to_article'  );
add_filter(  'ngettext',  'change_post_to_article'  );

function change_post_to_article( $translated ) {
     $translated = str_ireplace(  'Post',  'Article',  $translated );  // ireplace is PHP5 only
     return $translated;
}

Перенаправление неудачных входов в систему

Добавить форму входа в интерфейс WordPress довольно просто. WordPress 3.0 дал нам гибкую функцию wp_login_form(), которая отображает форму входа, которую можно настроить с помощью ряда аргументов. По умолчанию он перенаправляет пользователя обратно на текущую страницу после успешной аутентификации, но мы также можем настроить место перенаправления.

wp_login_form(array( 'redirect' => site_url() ));  // will redirect back to the website’s home page

Есть только одна проблема: он будет перенаправлять только после успешной аутентификации! Если ваша идея заключалась в том, чтобы скрыть экран входа в систему WordPress по умолчанию, то отправка пользователей, которые не смогли войти в систему, обратно на экран входа по умолчанию, вероятно, не идеальна. Вот хук и некоторый код, который вы можете поместить в свой functions.php файл, который будет перенаправлять неудачные входы в любое место по вашему выбору.

add_action( 'wp_login_failed', 'my_front_end_login_fail' );  // hook failed login

function my_front_end_login_fail( $username ) {
     $referrer = $_SERVER['HTTP_REFERER'];  // where did the post submission come from?
     // if there's a valid referrer, and it's not the default log-in screen
     if ( !empty($referrer) && !strstr($referrer,'wp-login') && !strstr($referrer,'wp-admin') ) {
          wp_redirect( $referrer . '?login=failed' );  // let's append some information (login=failed) to the URL for the theme to use
          exit;
     }
}

Добавление выдержек на страницы

С добавлением поддержки пользовательских типов записей типы контента (включая встроенные типы записей и страниц) больше похожи на абстрактные объекты. Каждый тип контента может поддерживать любое количество основных функций, таких как редактор HTML, заголовки, избранные изображения и так далее. Одной из таких основных функций является «отрывок». По умолчанию Pages не поддерживает выдержки. Знаете ли вы, что добавление поддержки выдержки во встроенный тип страницы так же просто, как добавление одной строки кода?

add_action( 'init', 'my_add_excerpts_to_pages' );
function my_add_excerpts_to_pages() {
     add_post_type_support( 'page', 'excerpt' );
}

Технически это была пара строчек кода, но многие темы уже зацепили initпоэтому крючок может не понадобиться.

Добавление классов кузова на основе особых условий

Если тема хорошо сконструирована, то она будет использовать функцию body_class() для автоматической генерации классов для body тег на основе свойств просматриваемой страницы, например category, category-3а также logged-in.

Некоторые веб-сайты могут иметь разделы, которые должны иметь общий стиль, но не объединены ни одним из классов по умолчанию, созданных body_class. Допустим, нам нужен идентификатор страницы 7идентификатор категории 5 и архив для тега neat поделиться классом кузова neat-stuffтак что мы можем добавить к ним ряд свойств стиля, не загромождая таблицу стилей.

К счастью, мы можем зацепить body_class() выход!

add_filter( 'body_class', 'my_neat_body_class');
function my_neat_body_class( $classes ) {
     if ( is_page(7) || is_category(5) || is_tag('neat') )
          $classes[] = 'neat-stuff';

     return $classes; 
}

«У вас может быть доступ к настройкам, но не говорите, что мы вас не предупреждали!»

Клиенты часто ожидают полного административного доступа (и это правильно), включая доступ к страницам настроек. Давайте посмотрим, как мы можем подключить «уведомления» администратора (эти предупреждающие окна, генерируемые некоторыми плагинами), чтобы отправлять некоторые предупреждения администраторам, когда они находятся на страницах настроек.

add_action( 'admin_notices', 'my_admin_notice' );
function my_admin_notice(){
     global $current_screen;</div>
     if ( $current_screen->parent_base == 'options-general' )
          echo '<div><p>Warning - changing settings on these pages may cause problems with your website’s design!</p></div>';
}

Поскольку WordPress все чаще используется для полной реализации веб-сайтов, функция прокрутки блога и ссылок используется все меньше и меньше. К счастью, новая малоизвестная функция, добавленная в WordPress 3.1, позволяет очень легко удалять ненужные элементы меню, такие как «Ссылки».

add_action( 'admin_menu', 'my_admin_menu' );

function my_admin_menu() {
     remove_menu_page('link-manager.php');
}

Удалите новостные ленты с панели инструментов… и добавьте новую свою собственную

Если вы создаете веб-сайты WordPress для клиентов, то количество новостных лент WordPress, загружаемых по умолчанию на панели инструментов, может раздражать. Если вы сообразительны, вы можете просто ввести некоторые из новостей вашего собственного клиента.

add_action('wp_dashboard_setup', 'my_dashboard_widgets');
function my_dashboard_widgets() {
     global $wp_meta_boxes;
     // remove unnecessary widgets
     // var_dump( $wp_meta_boxes['dashboard'] ); // use to get all the widget IDs
     unset(
          $wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins'],
          $wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary'],
          $wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']
     );
     // add a custom dashboard widget
     wp_add_dashboard_widget( 'dashboard_custom_feed', 'News from 10up', 'dashboard_custom_feed_output' ); //add new RSS feed output
}
function dashboard_custom_feed_output() {
     echo '<div class="rss-widget">';
     wp_widget_rss_output(array(
          'url' => 'https://www.get10up.com/feed',
          'title' => 'What's up at 10up',
          'items' => 2,
          'show_summary' => 1,
          'show_author' => 0,
          'show_date' => 1 
     ));
     echo "</div>";
}

Если вы создаете веб-сайты WordPress для клиентов, вам обязательно нужно убедиться, что WordPress получает должное. Также не помешает отдать должное вашему агентству.

add_filter( 'admin_footer_text', 'my_admin_footer_text' );
function my_admin_footer_text( $default_text ) {
     return '<span id="footer-thankyou">Website managed by <a href="https://www.get10up.com">10up</a><span> | Powered by <a href="https://www.wordpress">WordPress</a>';
}

Дальнейшее чтение

Вот еще несколько советов для разработчиков, которые создают сайты для клиентов:

  • Настройка администрирования WordPress с помощью темы Twenty-Ten Child
  • 10 методов настройки панели администратора WordPress

Дополнительные советы по мощности WordPress от Smashing Magazine:

  • Расширенные советы по мощности для разработчиков шаблонов WordPress: перезагрузка
  • Расширенные советы по мощности для разработчиков шаблонов WordPress
  • Мощные советы для разработчиков шаблонов WordPress

(ал) (иль)



[ad_2]
Source: https://smashingmagazine.com

Заключение

Вы ознакомились с статьей — Новые советы по WordPress Power для разработчиков шаблонов и консультантов

Пожалуйста оцените статью, и напишите комментарий.

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован.

Краткое описание по статье Новые советы по WordPress Power для разработчиков шаблонов и консультантов

Название: Новые советы по WordPress Power для разработчиков шаблонов и консультантов . Краткое описание: [ad_1] ⭐ Джейкоб . Дата публикации: 21.02.2022 . Автор: Алишер Валеев .

Для чего создан сайт Novosti-Nedeli.ru

Данный сайт посвящен новостям мира и мира технологий . Также тут вы найдете руководства по различным девайсам.

Сколько лет сайту?

Возраст составляет 3 года

Кнопка «Наверх»