[Инфо] Wordpress: плюшки файла functions.PHP ))

Тема в разделе "Wordpress", создана пользователем Красавчег, 10 окт 2012.

Информация :
Все пользователи Nulled-а обязаны ознакомиться с основными правилами форума!
Правила: Правила форума
Правила раздела: ОБЩИЕ СВЕДЕНИЯ | Правила раздела | Правила оформления [​IMG]
Полезное: Раскодирование шаблонов | Шорткоды | Поиск плагинов | [​IMG] Складчины
Плюшки: functions.PHP - часть 1 | часть 2
Разделы WP: Шаблоны | CodeCanyon
Статус темы:
Закрыта.
Модераторы: ponoroshca
  1. NoMax

    NoMax Создатель

    Регистр.:
    27 янв 2008
    Сообщения:
    22
    Симпатии:
    1
    Я использую на своем сайте поиск от Гугла, поэтому, чтобы исключить возможные нагрузки на сервер, совсем обезвредил поиск Вордпресса
    Код:
    $_GET['s']='';
    $_POST['s']='';
    $_REQUEST['s']='';

    И сразу вопрос: как лучше отключить автоматическую замену кавычек при выводе контента?
     
    kachi нравится это.
  2. h_hogan

    h_hogan Создатель

    Регистр.:
    8 мар 2013
    Сообщения:
    39
    Симпатии:
    2
    Убирай функцию wptexturize с хуков, обрабатывающих вывод
    Т.е.:
    PHP:
    remove_filter('the_content''wptexturize');

    remove_filter('the_title''wptexturize');

    remove_filter('comment_text''wptexturize');

    remove_filter('the_excerpt''wptexturize');

    Правда если хочешь отменить только замену кавычек, а остальных символов нет, можешь вот такой фильтр накинуть
    PHP:
    add_filter'the_content''back_quotes' );

    function 
    back_quotes$text ){
        return 
    str_replace( array( '»''«''‘''’' ), array( '"''"''\'''\'' ),  $text);
    }
     
    Последнее редактирование модератором: 5 май 2014
  3. Apathetic

    Apathetic Создатель

    Регистр.:
    21 мар 2013
    Сообщения:
    9
    Симпатии:
    6
    Написал небольшую функцию для вывода любых данных любой записи/поста в любом месте. Она действительно очень простая, но заметно упрощает жизнь, когда нужно, к примеру, собрать главную страницу из десятка больших и не очень блоков.
    PHP:
    function main_content($page_ID$field$custom false){
        if (
    $custom == false) {
            
    $main_content get_post$page_IDARRAY_A );
            
    $text $main_content['post_' $field];
        } elseif (
    $custom == true) {
            
    $text get_post_meta$page_ID$fieldtrue );
        }
        echo 
    $text;
    }
    Соответственно, чтобы вывести, например, тело страницы с ID 5:
    PHP:
    <?php main_content('287''content'); ?>

    Кроме того, добавил шорткод, чтобы использовать эту функцию непосредственно в записях:
    PHP:
    function main_content_shortcode$atts$content null ){
        
    extract(shortcode_atts( array(
            
    'id' => 1,
            
    'field' => 'title',
            
    'custom' => false
        
    ), $atts));
        
    main_content($id$field$custom);
    }
    add_shortcode('content''main_content_shortcode');
    Шорткод, например, такой: [content id="15" field="content"]
    Нетрудно заметить, что функция и шорткод поддерживают так же и произвольные поля - нужно только указать его название и передать функции true.
     
    AkkAdemik, Varrcan и kauh нравится это.
  4. ZM2007

    ZM2007

    Регистр.:
    16 окт 2007
    Сообщения:
    186
    Симпатии:
    83
    Уважаемые кодеры Wordpress, уверен тем кто серьезно занимается этим, будет полезна следующая ссылка:


    Генерит много полезного кода, от банального включения меню, до ... :)
     
    AkkAdemik, alex_uni, Sorcus и 2 другим нравится это.
  5. SergAgent

    SergAgent Постоялец

    Регистр.:
    8 дек 2007
    Сообщения:
    86
    Симпатии:
    16
    jaycee, Apathetic, лучше используйте этот плагин, очень удобно
     
  6. SEOKinG

    SEOKinG

    Регистр.:
    2 дек 2008
    Сообщения:
    346
    Симпатии:
    70
    искал решения для себя, нашел, может кому-то еще пригодится.
    Задача - подсветка рубрики в меню, если находимся на странице поста (single), который расположен в данной рубрике.
    код, если менюшка работает через wp_list_categories
    PHP:
    add_filter('wp_list_categories','ccats');
    function 
    ccats($list) {
        if ( ! 
    is_single() ) return $list;
        foreach((
    get_the_category()) as $category) {
            
    $temp[] = $category->cat_ID;
        }
        
    $temp '/(cat-item-('.join('|',$temp).'))[ |"]/';
        
    $list preg_replace($temp,' current-cat $1"',$list);
        return 
    $list;
    }
    а потом в стилях css добавляем нужный код для класса .current-cat
     
    AkkAdemik нравится это.
  7. Apathetic

    Apathetic Создатель

    Регистр.:
    21 мар 2013
    Сообщения:
    9
    Симпатии:
    6
    По умолчанию тег wp_list_categories и так выводит классы current-cat и current-cat-parent, не?
     
  8. levati

    levati Постоялец

    Регистр.:
    2 апр 2007
    Сообщения:
    104
    Симпатии:
    23
    Да, но для версий движка 2.5+. Я так понимаю, фича для более ранних версий тоже работает.

    У меня есть давние проекты и на версии 2.3.3, вот для них и подойдёт сниппет.
    Если не отвлекаться от темы, то предлагаю плюшку для исключения записи/страницы из результатов поиска:
    PHP:
    function my_search_filter($query) {
    if ( !
    $query->is_admin && $query->is_search) {
    $query->set(‘post__not_in’, array(131) ); // id страниц или записей через запятую
    }
    return 
    $query;
    }
    add_filter‘pre_get_posts’‘my_search_filter’ );
    Необходима для коррекции косяков плагинов автозаполнения результатов поиска, таких, как Dave's WordPress Live Search
     
    Последнее редактирование модератором: 5 май 2014
  9. Blojek

    Blojek Писатель

    Регистр.:
    17 июл 2013
    Сообщения:
    5
    Симпатии:
    0
    Убираем первый пункт админ бара со ссылками на WP
    PHP:
    // убираем первый пункт админ бара со ссылками на WP
    function wps_admin_bar() {
        global 
    $wp_admin_bar;
        
    $wp_admin_bar->remove_menu('wp-logo');
        
    $wp_admin_bar->remove_menu('about');
        
    $wp_admin_bar->remove_menu('wporg');
        
    $wp_admin_bar->remove_menu('documentation');
        
    $wp_admin_bar->remove_menu('support-forums');
        
    $wp_admin_bar->remove_menu('feedback');
        
    $wp_admin_bar->remove_menu('view-site');
    }
    add_action'wp_before_admin_bar_render''wps_admin_bar' );
    PHP:
    if ( function_exists('remove_filter') ) {
        
    # Отключим замену кавычек в тексте записей и страниц
        
    remove_filter('the_content''wptexturize');
        
    # Отключим замену кавычек в заголовках записей и страниц
        #remove_filter('the_title', 'wptexturize');
        # Отключим замену кавычек в тексте комментариев
        
    remove_filter('comment_text''wptexturize');
    }
    PHP:
    function exclude_category ($query) {
        if ( 
    $query->is_home ) {
            
    $query->set('category__not_in', array(999)); // 999 это убираемая рубрика с главной
        
    } elseif ( $query->is_feed ) {
            if ( ! 
    $query->is_single and ! $query->is_archive )
            
    $query->set('category__not_in', array(999)); // 999 это убираемая рубрика из rss
        
    }
        return 
    $query;
    }
    add_filter('pre_get_posts''exclude_category');
    В последних записях на главной отображаются
     
  10. nagan

    nagan Писатель

    Регистр.:
    4 май 2012
    Сообщения:
    4
    Симпатии:
    5
    Убрать ссылки изображений из постов
    PHP:
    //Убрать ссылки изображений из постов

    add_filter'the_content''attachment_image_link_remove_filter' );
    function 
    attachment_image_link_remove_filter$content ) {
    $content =
    preg_replace(
    array(
    '{<a(.*?)(wp-att|wp-content/uploads)[^>]*><img}',
    '{ wp-image-[0-9]*" /></a>}'),
    array(
    '<img','" />'),
    $content
    );
    return 
    $content;
    }
    Инфо: Вордпресс вставляет ссылки на изображения в постах на полную его версию. Этот код убирает эти ссылки. Остается маленькое превью и уменьшенные изображения в посте не будут обрамлены ссылкой на само изображение.
     
    Mamka и Sorcus нравится это.
Статус темы:
Закрыта.