10 Исключительные WordPress хаки

Сегодня, давайте сделаем это снова с 10 новых и полностью убийца WordPress хаки, чтобы сделать ваш блог выделиться из толпы. Как обычно, мы не будем просто перечислить хаки в одиночку. В каждой записи, вы найдете объяснение кода, а также виды проблем, которые взломать решает.

1. Создание крошечных url-адресов на лету

Screenshot

Проблема. Поскольку Twitter стал революцией в социальных сетях, многие блоггеры и пользователи Twitter любят делиться публикациями в блоге, которые они нашли и полюбили в Твиттере. Тем не менее, вручную создание TinyURL до чирикал может получить немного утомительно. Как вы, наверное, знаете, щебетать может принести много трафика на ваш блог, так что в ваших интересах последовательно предоставлять короткие URL-адреса для ваших читателей.

Решение. Чтобы использовать этот рецепт, выполните простые шаги ниже:

  1. Откройте файл functions.php.
  2. Вставьте следующий код в файле:

    function getTinyUrl($url) {
        $tinyurl = file_get_contents("http://tinyurl.com/api-create.php?url=".$url);
        return $tinyurl;
    }
    
  3. Откройте файл single.php и вставьте следующее в цикле:

    <?php
    $turl = getTinyUrl(get_permalink($post->ID));
    echo 'Tiny Url for this post: <a href="'.$turl.'">'.$turl.'</a>'
    ?>
    
  4. Это все, что тебе нужно. Каждый из ваших постов теперь имеет свой tinyURL, готовый к чирикать!

Объяснение кода. Популярный сервис сокращения URL TinyURL обеспечивает быстрый API, который создает TinyURLs на лету. Когда вы передаете URL http://tinyurl.com/api-create.php,API немедленно печатает связанный TinyURL на экране.

Используя функцию PHP file’get’contents(), мы можем получить его и назначить его $tinyurl переменной. Последняя часть кода получает пермалю к посту и передает ее в качестве параметра ранее созданной функции getTinyUrl()

Источник:

2. Список Предстоящие сообщения

Screenshot

Проблема. Если вы часто планируете публикацию публикаций, как насчет их отображения в списке? Это сделает ваши читатели с нетерпением ожидаем того, что вы собираетесь опубликовать в течение нескольких дней и может помочь вам достичь новых подписчиков RSS. Реализация этой функциональности на вашем блоге WordPress не трудно на всех.

Решение. Ничего сложного здесь. Просто скопируйте этот код и вставьте его в любом месте в ваших тематических файлов.

<div id="zukunft">
  <div id="zukunft_header"><p>Future events</p></div>

  <?php query_posts('showposts=10&post_status=future'); ?>
  <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    <div >
      <p class><b><?php the_title(); ?></b><?php edit_post_link('e',' (',')'); ?><br />

      <span class="datetime"><?php the_time('j. F Y'); ?></span></p>
    </div>
  <?php endwhile; else: ?><p>No future events scheduled.</p><?php endif; ?>

</div>

После того как вы сохранили файл, ваши предстоящие сообщения будут отображаться на вашем блоге.

Объяснение кода. Этот код использует супер-мощный query-posts() WordPress функции, которая позволяет взять под контроль WordPress цикла.

Используемый параметр является постстатусом, который позволяет получать сообщения в соответствии с их статусом (опубликованные, проектные, ожидающие или будущие). Параметр showposts также используется для определения количества элементов, которые вы хотели бы получить. Вы можете изменить значение этого параметра на строке 4, чтобы получить более или менее десяти сообщений.

Источник:

3. Создайте кнопку «Отправить на Facebook»

Screenshot

Проблема. В первом взломать, мы отметили, что щебетать может принести много трафика на ваш блог. Другой веб-сайт, который может повысить статистику трафика легко Facebook. В этом хак, давайте посмотрим, как мы можем создать «Отправить на Facebook» кнопку для вашего блога WordPress.

Решение.

  1. Откройте файл single.php в вашей теме.
  2. Вставьте следующий код в цикле:

    <a href="http://www.facebook.com/sharer.php?u=<?php the_permalink();?>&t=<?php the_title(); ?>" target="blank">Share on Facebook</a>
    
  3. Кроме того, вы можете использовать функцию getTinyUrl() для отправки короткого URL на Facebook:

    <?php $turl = getTinyUrl(get_permalink($post->ID)); ?>
    <a href="http://www.facebook.com/sharer.php?u=<?php echo $turl;?>&t=<?php the_title(); ?>" target="blank">Share on Facebook</a>
    
  4. Это всё. Ваши читатели теперь смогут поделиться своим блогом на Facebook со своими друзьями!

Объяснение кода. Этот полезный хак очень легко понять: единственное, что мы делаем здесь, это получить в известь поста и название и отправить их в качестве параметров, чтобы http://www.facebook.com/sharer.php.

В альтернативном методе, мы использовали getTinyUrl() функцию (созданную в предыдущем хак) для отправки короткого URL вместо поста в permalink.

Источник:

4. Создайте страницу обслуживания для вашего блога WordPress

Screenshot

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

Решение. Чтобы решить эту проблему, мы используем силу файла .htaccess. Просто следуйте шагам ниже, чтобы начать работу.

  1. Создайте страницу обслуживания. Простая страница WordPress, как правило, достаточно.
  2. Найдите файл .htaccess (расположен в корне установки WordPress) и создайте резервную.
  3. Откройте файл .htaccess для редактирования.
  4. Вставьте следующий код:

    RewriteEngine on
    RewriteCond %{REQUEST_URI} !/maintenance.html$
    RewriteCond %{REMOTE_ADDR} !^123.123.123.123
    RewriteRule $ /maintenance.html [R=302,L]
    
  5. Заменить 123.123.123 на линии 3 с вашим IP-адресом(не знаю?). Убедитесь в том, чтобы использовать тот же синтаксис.

  6. Теперь все посетители, кроме вас, будут перенаправлены на страницу обслуживания.

  7. После того как вы сделали настройки, модернизации, тема переключения или любой другой, повторно открыть файл .htaccess и удалить (или прокомментировать) код перенаправления.

Объяснение кода. Файл .htaccess, который управляет веб-сервером Apache, очень полезен для такого рода задач.

В этом примере мы заявляем, что любой посетитель, который имеет IP отличается от 123.123.123 (который не запрашивает maintenance.html) должны быть перенаправлены на maintenance.html.

Заменив 123.123.123 с вашим собственным IP-адресом, вы убедитесь, что вы все еще разрешено просматривать ваш блог нормально, в то время как другие перенаправлены на maintenance.html.

Источник:

Screenshot

Проблема. Один известный способ держать посетителей на вашем блоге дольше и помогая им обнаружить новости должности для отображения, как правило, в конце статьи, список связанных с ними содержания.

Многие плагины будут делать эту работу, но почему бы не супер-зарядвашено вашей теме, интегрируя эту функциональность по умолчанию?

Решение.

  1. Откройте файл single.php в вашей теме.
  2. Вставьте следующий код в цикле:

    <?php
    //for use in the loop, list 5 post titles related to first tag on current post
    $tags = wp_get_post_tags($post->ID);
    if ($tags) {
      echo 'Related Posts';
      $first_tag = $tags[0]->term_id;
      $args=array(
        'tag__in' => array($first_tag),
        'post__not_in' => array($post->ID),
        'showposts'=>5,
        'caller_get_posts'=>1
       );
      $my_query = new WP_Query($args);
      if( $my_query->have_posts() ) {
        while ($my_query->have_posts()) : $my_query->the_post(); ?>
          <p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p>
          <?php
        endwhile;
      }
    }
    ?>
    
  3. Сохранить файл, а затем посмотреть на свой блог: связанные сообщения автоматически отображаются!

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

По умолчанию этот код отображает до пяти связанных постов. Чтобы изменить это число, просто отодевайте строку 9 кода.

Источник:

6. Автоматически извлекайте первое изображение от столбов на вашей домашней странице

Screenshot

Проблема. Многие пользователи WordPress используют пользовательские поля для отображения эскиза на своей домашней странице в блоге. Конечно, это хорошее решение, но как насчет автоматического получения первого изображения из поста и использования его в качестве эскиза?

Решение. Этот хак довольно легко реализовать:

  1. Откройте файл functions.php в вашей теме.
  2. Вставьте этот код. Не забудьте указать изображение по умолчанию на строке 10 (в случае, если ваш пост не имеет изображения).

    function catch_that_image() {
      global $post, $posts;
      $first_img = ’;
      ob_start();
      ob_end_clean();
      $output = preg_match_all('/<img.+src=['"]([^'"]+)['"].*>/i', $post->post_content, $matches);
      $first_img = $matches [1] [0];
    
      if(empty($first_img)){ //Defines a default image
        $first_img = "/images/default.jpg";
      }
      return $first_img;
    }
    
  3. Сохранить файл functions.php.

  4. На главной странице блога(index.php),позвоните функции таким образом, чтобы получить URL первого изображения из поста:

    <?php echo catch_that_image() ?>
    

Объяснение кода. Функция использует глобальную переменную $post для разбора содержимого публикации с помощью регулярного выражения. Если изображение найдено, его URL возвращается функцией. В противном случае возвращается URL-адрес изображения по умолчанию.

Источник:

7. Изменить размер изображения на лету

Screenshot

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

Решение. Для достижения этой рубить, просто следуйте этим простым шагам:

  1. Получить этот скрипт и сохранить его на вашем компьютере (я предполагаю, что вы назвали его timthumb.php).
  2. Используйте программу FTP для подключения к серверу и создания нового каталога под названием скрипты. Загрузите файл timthumb.php к нему.
  3. После этого вы можете отображать изображения следующим образом:

    <img src="/scripts/timthumb.php?src=/images/whatever.jpg&h=150&w=150&zc=1" alt="Screenshot" />
    

    Другими словами, вы просто вызов timthumb.php файл и передать изображение в качестве параметра. То же самое касается желаемой ширины и высоты.

Объяснение кода. В скрипте timthumb.php используется библиотека PHP GD, которая позволяет динамически управлять изображениями с помощью PHP. GD устанавливается по умолчанию на всех серверах под управлением PHP5. Если вы не работаете с PHP5, вам придется проверить, установлен ли GD перед использованием этого скрипта.

Файл timthumb.php получает параметры, которые вы передали ему (URL изображения, ширина и высота) и использует его для создания нового изображения с указанными размерами. Как только это будет сделано, изображение возвращается вам.

Источник:

Screenshot

Проблема. Отображение ваших самых популярных сообщений является хорошим способом, чтобы посетители остаться дольше на вашем блоге, как отображение соответствующих сообщений. Многие большие плагины могут перечислить ваши самые популярные сообщения, но опять же, зачем использовать плагин, когда вы можете просто взломать тему WordPress, чтобы сделать это автоматически?

Решение. Просто вставьте следующий код в любом месте в ваших тематических файлов (например, в sidebar.php). Чтобы изменить количество отображаемых сообщений, просто измените «5» на строке 3 на желаемое число.

<h2>Popular Posts</h2>
<ul>
<?php $result = $wpdb->get_results("SELECT comment_count,ID,post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , 5");
foreach ($result as $post) {
setup_postdata($post);
$postid = $post->ID;
$title = $post->post_title;
$commentcount = $post->comment_count;
if ($commentcount != 0) { ?>

<li><a href="<?php echo get_permalink($postid); ?>" title="<?php echo $title ?>">
<?php echo $title ?></a> {<?php echo $commentcount ?>}</li>
<?php } } ?>

</ul>

Объяснение кода. Этот код выполняет запрос на базу данных WordPress, используя $wpdb объект, чтобы получить список из пяти сообщений с наибольшим количеством комментариев. Затем результаты заворачиваются в неупорядоченный HTML-список и отображаются на экране.

Источник:

9. Выделите поиск текста в результатах поиска

Screenshot

Проблема. Система поисковой системы WordPress часто критикуют за то, что не достаточно мощным. Одним из его самых слабых сторон, на мой взгляд, является то, что поиск текста не легко отличить от остальной части текста. Давайте решим это!

Решение.

  1. Откройте файл search.php и найдите функцию title() .
  2. Замените его следующими:

    echo $title;
    
  3. Теперь, непосредственно перед измененной строкой, добавьте этот код:

    <?php
      $title  = get_the_title();
      $keys= explode(" ",$s);
      $title  = preg_replace('/('.implode('|', $keys) .')/iu',
        '<strong class="search-excerpt"></strong>',
        $title);
    ?>
    
  4. Сохранить файл search.php и открыть style.css. Добавьте к нему следующую строку:

    strong.search-excerpt { background: yellow; }
    

Это всё. Лучше, не так ли?

Объяснение кода. Опять же, регулярные выражения являются спасителем. Regexp разбирает содержание $s ($s является переменной, содержащей искали текст) и автоматически добавляет «lt;сильный класс»»поиск-выдержк $sа» .

Затем вы просто измените файл style.css, чтобы придать искали текст особый стиль и сделать его более заметным для ваших читателей.

Источников:

10. Отключить видгетизированные области без редактирования тематических файлов

Screenshot

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

Решение. Для этого просто добавьте следующий код в файл functions.php:

<?php
add_filter( 'sidebars_widgets', 'disable_all_widgets' );

function disable_all_widgets( $sidebars_widgets ) {
  if ( is_home() )
    $sidebars_widgets = array( false );
  return $sidebars_widgets;
}
?>

Объяснение кода. Этот код сначала добавляет фильтр в функцию sidebars’widgets WordPress. Теперь каждый раз, когда WordPress пытается выполнить эту функцию, он будет выполнять функцию отключить, мы только что создали.

Функция «Отключить» использует условные теги WordPress (в данном примере, is’home(), но вы можете использовать любой условный тег), чтобы отключить все виджеты, если посетитель находится на определенной странице или посте.

Источник:

    function catch_that_image() {
      global $post, $posts;
      $first_img = ’;
      ob_start();
      ob_end_clean();
      $output = preg_match_all('/<img.+src=['"]([^'"]+)['"].*>/i', $post->post_content, $matches);
      $first_img = $matches [1] [0];

      if(empty($first_img)){ //Defines a default image
        $first_img = "/images/default.jpg";
      }
      return $first_img;
    }
  1. Сохранить файл functions.php.
  2. На главной странице блога(index.php),позвоните функции таким образом, чтобы получить URL первого изображения из поста:

    <?php echo catch_that_image() ?>
    

Объяснение кода. Функция использует глобальную переменную $post для разбора содержимого публикации с помощью регулярного выражения. Если изображение найдено, его URL возвращается функцией. В противном случае возвращается URL-адрес изображения по умолчанию.

Источник:

7. Изменить размер изображения на лету

Screenshot

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

Решение. Для достижения этой рубить, просто следуйте этим простым шагам:

  1. Получить этот скрипт и сохранить его на вашем компьютере (я предполагаю, что вы назвали его timthumb.php).
  2. Используйте программу FTP для подключения к серверу и создания нового каталога под названием скрипты. Загрузите файл timthumb.php к нему.
  3. После этого вы можете отображать изображения следующим образом:

    <img src="/scripts/timthumb.php?src=/images/whatever.jpg&h=150&w=150&zc=1" alt="Screenshot" />
    

    Другими словами, вы просто вызов timthumb.php файл и передать изображение в качестве параметра. То же самое касается желаемой ширины и высоты.

Объяснение кода. В скрипте timthumb.php используется библиотека PHP GD, которая позволяет динамически управлять изображениями с помощью PHP. GD устанавливается по умолчанию на всех серверах под управлением PHP5. Если вы не работаете с PHP5, вам придется проверить, установлен ли GD перед использованием этого скрипта.

Файл timthumb.php получает параметры, которые вы передали ему (URL изображения, ширина и высота) и использует его для создания нового изображения с указанными размерами. Как только это будет сделано, изображение возвращается вам.

Источник:

Screenshot

Проблема. Отображение ваших самых популярных сообщений является хорошим способом, чтобы посетители остаться дольше на вашем блоге, как отображение соответствующих сообщений. Многие большие плагины могут перечислить ваши самые популярные сообщения, но опять же, зачем использовать плагин, когда вы можете просто взломать тему WordPress, чтобы сделать это автоматически?

Решение. Просто вставьте следующий код в любом месте в ваших тематических файлов (например, в sidebar.php). Чтобы изменить количество отображаемых сообщений, просто измените «5» на строке 3 на желаемое число.

<h2>Popular Posts</h2>
<ul>
<?php $result = $wpdb->get_results("SELECT comment_count,ID,post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , 5");
foreach ($result as $post) {
setup_postdata($post);
$postid = $post->ID;
$title = $post->post_title;
$commentcount = $post->comment_count;
if ($commentcount != 0) { ?>

<li><a href="<?php echo get_permalink($postid); ?>" title="<?php echo $title ?>">
<?php echo $title ?></a> {<?php echo $commentcount ?>}</li>
<?php } } ?>

</ul>

Объяснение кода. Этот код выполняет запрос на базу данных WordPress, используя $wpdb объект, чтобы получить список из пяти сообщений с наибольшим количеством комментариев. Затем результаты заворачиваются в неупорядоченный HTML-список и отображаются на экране.

Источник:

9. Выделите поиск текста в результатах поиска

Screenshot

Проблема. Система поисковой системы WordPress часто критикуют за то, что не достаточно мощным. Одним из его самых слабых сторон, на мой взгляд, является то, что поиск текста не легко отличить от остальной части текста. Давайте решим это!

Решение.

  1. Откройте файл search.php и найдите функцию title() .
  2. Замените его следующими:

    echo $title;
    
  3. Теперь, непосредственно перед измененной строкой, добавьте этот код:

    <?php
      $title  = get_the_title();
      $keys= explode(" ",$s);
      $title  = preg_replace('/('.implode('|', $keys) .')/iu',
        '<strong class="search-excerpt"></strong>',
        $title);
    ?>
    
  4. Сохранить файл search.php и открыть style.css. Добавьте к нему следующую строку:

    strong.search-excerpt { background: yellow; }
    

Это всё. Лучше, не так ли?

Объяснение кода. Опять же, регулярные выражения являются спасителем. Regexp разбирает содержание $s ($s является переменной, содержащей искали текст) и автоматически добавляет «lt;сильный класс»»поиск-выдержк $sа» .

Затем вы просто измените файл style.css, чтобы придать искали текст особый стиль и сделать его более заметным для ваших читателей.

Источников:

10. Отключить видгетизированные области без редактирования тематических файлов

Screenshot

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

Решение. Для этого просто добавьте следующий код в файл functions.php:

<?php
add_filter( 'sidebars_widgets', 'disable_all_widgets' );

function disable_all_widgets( $sidebars_widgets ) {
  if ( is_home() )
    $sidebars_widgets = array( false );
  return $sidebars_widgets;
}
?>

Объяснение кода. Этот код сначала добавляет фильтр в функцию sidebars’widgets WordPress. Теперь каждый раз, когда WordPress пытается выполнить эту функцию, он будет выполнять функцию отключить, мы только что создали.

Функция «Отключить» использует условные теги WordPress (в данном примере, is’home(), но вы можете использовать любой условный тег), чтобы отключить все виджеты, если посетитель находится на определенной странице или посте.

Источник:

Вас могут заинтересовать следующие посты:

Источник: smashingmagazine.com

Великолепный Журнал

Великолепный, сокрушительный, разящий (см. перевод smashing) независимый журнал о веб-разработке. Основан в 2006 году в Германии. Имеет няшный дизайн и кучу крутых авторов, которых читают 2 млн человек в месяц.

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

%d такие блоггеры, как: