10 секретов и примочек для wordpress

wp-codeДоброе время суток! Сегодняшний пост, как вы уже догадались, будет посвящён и некоторым примочкам, советам или называйте как хотите....

Хоть в моём блоге хватает этого, НО... всегда находится чтонибудь новенькое, что может вам  понадобится или то, что вы ищите...

Короче, читайте и не забывайте подписаться на RSS!!!

1. Как отключить скрипты и стили....

Многие плагины и темы добавляют Java-скрыпты и CSS файлы на ваш сайт. Хоть это и не так плохо, но используя несколько плагинов,  можно загрузить ваш сайт так, что ..... ну вобщем вы знаете как сайты тормозят.

В уроке Джастина Тэдлока описывается довольно таки хорошее решение для отключения скриптов и стилей для ваших плагины с помощью wp_enqueue_script () и wp_enqueue_style () в файлах плагина, а затем отключить его в functions.php вашей темы. Он выбрал 2 популярных плагина : Contact Form 7 и WP-PageNavi.

Отключение JavaScript
Это надо изменить в wp_enqueue_script :

1
wp_enqueue_script( 'contact-form-7', wpcf7_plugin_url( 'contact-form-7.js' ), array('jquery', 'jquery-form'), WPCF7_VERSION, $in_footer );

Теперь откройте functions.php вашей темы файл и добавить этот код PHP:

1
2
3
4
5
add_action( 'wp_print_scripts', 'my_deregister_javascript', 100 );  
 
function my_deregister_javascript() {  
    wp_deregister_script( 'contact-form-7' );  
}

Отключение Стилей

Теперь давайте повторим предыдущий шаг, но на этот раз изменим wp_enqueue_style:

1
wp_enqueue_style('wp-pagenavi', get_stylesheet_directory_uri().'/pagenavi-css.css', false, '2.50', 'all');

Отключить стиль этого плагина вы можете открыв functions.php вашей темы и добавить этот код PHP:

1
2
3
4
add_action( 'wp_print_styles', 'my_deregister_styles', 100 );  
 
function my_deregister_styles() {  
    wp_deregister_style( 'wp-pagenavi' );

2. Показ  иконок-миниатюр для последних постов в wordpress.


В этом уроке вы научитесь с помощью довольно ивестного плагина для wordpress YARPP, создавать иконки-миниатюры своих последних постов. Это красиво, удобно, короче читайте, смотрите и делайте выводы....)))

yarpp

3. Настройка Read more.

В этом уроке вы узнаете, как создать собственный "Read more" для каждого поста, с помощью custom fields в WordPress.

Все, что вам нужно сделать, это заменить обычные the_content тег шаблона на этот код. Затем, когда вы будете писать пост, создать новое поле custom field с ключом custom_more.

1
2
3
<?php $custommore = get_post_meta($post->ID, 'custom_more', true); ?>  
<?php if (!$custommore) { $custommore = 'Read More &raquo;'; } ?>  
<?php the_content($custommore); ?>

4. Автоматически получить первое изображение с поста  и показать его на главной.

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

Все, что нужно сделать, это вставить следующие функции в functions.php вашей темы.

1
2
3
4
5
6
7
8
9
10
11
12
13
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(emptyempty($first_img)){ //Если хотите поменять картинку по умолчанию, то это тут
    $first_img = "/images/default.jpg";  
  }  
  return $first_img;  
}

После этого откройте index.php вашей темы и вставьте код приведённый ниже туда, где вы хотите чтобы отображалось изображение поста.

1
<?php echo catch_that_image() ?>

5. Как Выделить результаты поиска с помощью JQuery .

В данном уроке будет описано как выделить результаты поиска на вашем сайте с помощью JQuery.

search_result_with_jquery

Для этого вам нужно вставить следующий код в файл functions.php вашей темы.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function hls_set_query() {  
  $query  = attribute_escape(get_search_query());  
  if(strlen($query) > 0){  
    echo ' 
      <script type="text/javascript"> 
        var hls_query  = "'.$query.'"; 
      </script> 
    ';  
  }  
}  
function hls_init_jquery() {  
  wp_enqueue_script('jquery');  
}  
add_action('init', 'hls_init_jquery');  
add_action('wp_print_scripts', 'hls_set_query');

Теперь необходимо открыть header.php  и вставить туда следующий код (перед тэгом </ head> )

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<style type="text/css" media="screen">  
  .hls { background: #D3E18A; } /* <- Тут можно поменять CSS */  
                                /*    текст кот. будет выделяться. */  
</style>  
<script type="text/javascript">  
jQuery.fn.extend({  
  highlight: function(search, insensitive, hls_class){  
    var regex = new RegExp("(<[^>]*>)|(\\b"  search.replace(/([-.* ?^${}()|[\]\/\\])/g,"\\$1")  ")", insensitive ? "ig" : "g");  
    return this.html(this.html().replace(regex, function(a, b, c){  
      return (a.charAt(0) == "<") ? a : "<strong class=\""  hsl_class  "\">"   c   "</strong>";  
    }));  
  }  
});  
jQuery(document).ready(function($){  
  if(typeof(hls_query) != 'undefined'){  
    $("#post-area").highlight(hls_query, 1, "hls"); // <- Изменить 'post-area' из html в id  
                                                    //    если хочешь его выделить.  
  }  
});  
</script>

6. Отображение последних постов по категориям.

Если вы хотите что бы ваши последние записи и страницы отображались по категорям и вы не знаете как это сделать...

Вам обязательно поможет плагин для wordpress: Latest Posts by Category Archive.

7. Показывать посты только с определенным Custom field.

Иногда шаблон нашего сайта требует или просто нам хочется чтобы последние посты отображались по категориям, а сделать это несложно. Вот так начинается цикл поста:

1
2
<?php if (have_posts()) : ?>  
<?php while (have_posts()) : the_post(); ?>

Теперь  просто добавите простую функцию query_posts непосредственно над циклом. В нашем случае это будет выглядеть так:

1
2
3
<?php query_posts('meta_key=review_type&meta_value=movie');  ?>  
<?php if (have_posts()) : ?>  
<?php while (have_posts()) : the_post(); ?>

8. Найти страницы верхнего уровня.

Этот  урок решит проблему отображения 2 и 3 уровня навигации в боковой панеле независимо от того, на какой странице вы находитесь. Первое, что необходимо сделать, это создать новую страницу (subnav.php) в папке вашей темы, её вы будете использовать для отображения навигации  от 2-го уровня вниз, а также надо включить его в sidebar.php вашей темы.

1
<?php include("subnav.php"); ?>

А теперь просто добавите код который приведён ниже в subnav.php:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php  
 
if ($post->post_parent)  {  
    $ancestors=get_post_ancestors($post->ID);  
    $root=count($ancestors)-1;  
    $parent = $ancestors[$root];  
} else {  
    $parent = $post->ID;  
}  
$children = wp_list_pages("title_li=&child_of=". $parent ."&echo=0");  
if ($children) { ?>  
<ul id="subnav">  
<?php echo $children; ?>  
</ul>  
<?php } ?>

Этот код проверяет, имеет ли текущая страница родительскую. Если да, то это означает, что мы по крайней мере на 2 уровня углубимся в навигацию. Это значит, что функция get_post_ancestors вызывает и возвращает массив идентификаторов всех предков до верхнего уровня (корень). Как только мы получим идентификатор высшего уровня родителей, мы сможем использовать его в wp_list_pages функции, чтобы получить доступ к нижним уровням.

9. Список последних постов из определенных категорий.

Это будет наверное один из самых простых способов выведения постов из определённой категории.

1
2
3
4
5
6
7
8
<?php query_posts('category_name=photoshop&showposts=7'); ?>  
<?php while (have_posts()) : the_post(); ?>  
     <li>  
           <a href="<?php the_permalink(); ?>">  
               <?php the_title(); ?>  
           </a>  
     </li>  
<?php endwhile; ?>

Код query_posts  говорит WordPress найти последние 7 постов  в категории Photoshop. Цикл запускает код что бы отобразить их.

10. Добавить так называемые "ХЛЕБНЫЕ КРОШКИ (Breadcrumbs)" для WordPress без плагинов.

"Хлебные крошки (Breadcrumbs)" это отличный способ помочь людям сориентироваться на сайте. Вы можете легко добавить их через несколько хороших плагинов. Но если вы хотите построить эту функцию без использования плагина, вот что вы должны сделать.

Создайте PHP-файл с именем breadcrumbs.php и вставить следующий код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<div class="breadcrumbs">  
<?php  
function breadcrumbs() {  
    $theFullUrl = $_SERVER["REQUEST_URI"];  
    $urlArray=explode("/",$theFullUrl);  
    echo %u2018You Are Here: <a href="/">Home</a>%u2019;  
    while (list($j,$text) = each($urlArray)) {  
        $dir=%u201D;  
        if ($j > 1) {  
            $i=1;  
            while ($i < $j) {  
                $dir .= %u2018/%u2019 . $urlArray[$i];  
                $text = $urlArray[$i];  
                $i  ;  
            }  
            if($j < count($urlArray)-1) echo %u2018 &raquo; <a href="%u2019.$dir.%u2018">%u2019 . str_replace("-", " ", $text) . %u2018</a>%u2019;  
        }  
    }  
    echo wp_title();  
}  
breadcrumbs();  
?>  
</div><!%u2013/breadcrumbs%u2013>


А там где вы хотели бы видеть функцию добавте код:

1
<?php include ( TEMPLATEPATH . %u2018/breadcrumbs.php%u2019); ?>

перевод: источник


Также читай на cooledit.org.ua:
.

загрузка...

Если вам понравилось, подпишись на наш RSS

Читать в Яндекс.Ленте Add to Google Reader or Homepage

4 комментария

  1. У меня вопрос.

    Как решить такую проблему:
    У меня в каждой статье есть ссылки на предыдущую и следующую статьи.

    Как сделать так если человек, заходит из категории, то и следующая/предыдущая статьи должны быть этой категории?

    Спасибо заранее,

    Олег

  2. К сожалению не все у вас было понятно что куда именно вставлять, вот их за этого я испортил свой рабочий сайт, придется работать еще пол года над восстановлением(…. Спасибо за коды(

  3. Очень интересная статья один урок новый увидел с выделением слов после поиска. У меня маленький вопрос, что то случилось и когда я вставляю картинку у меня пишет   за место картинки не знаю как решить эту проблему может кто знает помогите.

  4. Олег я не знаю

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

Ваш комментарий отправлен на модерацию админу, не надо заново его набирать.