Оформление WordPress

Вторая страница дополнительных функций для WordPress. На одной странице все не помещается, слишком длинный список.

Оглавление:
  1. Добавить шорткод в сайтбар
  2. Вывести текст из нужной страницы
  3. Показать вошедшему пользователю
  4. Значения query_posts
  5. Вывести текст из указанной страницы
  6. Отключить стиль плагина
  7. Отключить скрипт плагина
  8. Удалить миниатюры к записям
  9. Микроразметка schema.org для миниатюр
  10. Валидный шорткод твитер
  11. Микроразметка schema.org для изображений в содержании
  12. Добавить куки в WordPress
  13. Двойной шорткод
  14. Вывести

Добавить шорткод в сайтбар

add_filter('widget_text', 'do_shortcode'); /** Shortcode в сайдбар */

Вывести текст из нужной страницы

<?php $wp_query = new WP_Query( 'p=5' ); if ( $wp_query->have_posts() ) :
while ($wp_query->have_posts()) : $wp_query->the_post();

the_content( __( 'Continue reading <span class="meta-nav">&rarr;</span>', 'twentytwelve' ) );

endwhile;
else :

echo 'Нечего нет';

endif;
wp_reset_query();
wp_reset_postdata();
?>

Показать вошедшему пользователю

<?php if ( is_user_logged_in( /* Здесь можно поставить уровень пользователи */ ) ) : ?>
/* Сюда вставляем то, что будет показываться вошедшему пользователю */
<?php else : ?>
/* Сюда вставляем то, что будет показываться не вошедшему пользователю */
<?php endif; ?>

Значения query_posts

query_posts('cat=-3') — не показывать категорию id которой равно 3;
query_posts('cat=-1,-2,-3') — не показывать категории, id которых равны 1, 2 и 3;
query_posts('cat=2,6,17') — вывести категории с id равным 2, 6 и 17;
query_posts('category_name=WordPress') — вывести категорию с названием “WordPress”;
query_posts('name=Hello World') — вывести один пост с названием “Hello World”;
query_posts('p=5') — вывести один пост, id которого равно 5;
query_posts('page_id=7') — вывести страницу id которой равно 7;
query_posts('pagename=about') — вывести страницу с названием “about”;
query_posts('cat=18&showposts=5') — вывести 5 постов из категории с id=18;
query_posts('cat=3&orderby=date&order=ASC') — вывести посты из категории id которой равно 3, сортировать по дате в хронологическом порядке(DESC — в обратном порядке);
query_posts('posts_per_page=10') — вывести 10 постов на страницу (при значении -1 выводит все посты);
query_posts('cat=3&year=2008') — вывести посты из категории с id=3 за 2008 год;
query_posts('orderby=rand&showposts=3&cat=3') — выводим рандомно, т.е. случайно 3 записи из 3 категории;
query_posts('orderby=rand&showposts=3') — выводит случайно 3 записи из всех категорий;
query_posts('meta_key=cars&meta_value=volvo') — выводит список постов с произвольным полем “cars” и значением этого поля volvo.
к меню ↑

Вывести текст из указанной страницы

<?php $recent = new WP_Query("page_id=ID"); while($recent->have_posts()) : $recent->the_post();?>
<h3><?php the_title(); ?></h3>
<?php the_content(); ?>
<?php endwhile; ?>

Отключить стиль плагина

function de_styles() { /** Отключить стиль плагина */
wp_deregister_style( 'стиль плагина' );
}
add_action( 'wp_print_styles', 'de_styles', 100 );

Отключить скрипт плагина

function de_script() { /** Отключить скрипт плагина */
	wp_dequeue_script( 'скрипт плагина' );
	wp_deregister_script( 'скрипт плагина' );
}
add_action( 'wp_print_scripts', 'de_script', 100 );

Удалить миниатюры к записям

global $wpdb;

$attachments = $wpdb->get_results( "
     SELECT *
     FROM $wpdb->postmeta
     WHERE meta_key = '_thumbnail_id'
" );

foreach ( $attachments as $attachment ) {
    wp_delete_attachment( $attachment->meta_value, true );
}

$wpdb->query( "
    DELETE FROM $wpdb->postmeta
    WHERE meta_key = '_thumbnail_id'
" );

Микроразметка schema.org для миниатюр

function micro_image_itemprop($html, $post_id, $post_image_id){ /** микроразметка для миниатюр */
$html = str_replace('src',' itemprop="image" src',$html);
    return $html;
}
add_filter('post_thumbnail_html','micro_image_itemprop', 10, 3 );

Валидный шорткод твитер

function pixelcom_twitter() { /** twitter link shortcode. */
    $twitter_text = urlencode( esc_attr( the_title_attribute( 'echo=0' ) ) );
    $twitter_share = urlencode( esc_attr( get_permalink( get_the_ID() ) ) );
    return '<a title="Добавить в Twitter" href="http://twitter.com/share?text=' . $twitter_text . '&amp;url=' . $twitter_share . '"></a>';
}
add_shortcode( 'twitter-share', 'pixelcom_twitter' );

Микроразметка schema.org для изображений в содержании

function pixelcom_micro_image($content) {/** микроразметка для изображений в содержании */
    global $post;
    $pattern = "<img";
    $replacement = '<img itemprop="image"';
    $content = str_replace($pattern, $replacement, $content);
return $content;
}
add_filter('the_content', 'pixelcom_micro_image');

Добавить куки в WordPress

function pixelcom_alert_cookie() {
    if (!isset($_COOKIE['popup'])) {
    }
}
add_action( 'init', 'pixelcom_alert_cookie');

Двойной шорткод

function display_my_shortcode($atts, $content, $tag){

    // вызов из 'my_primary_shortcode'
    if($tag == 'my_primary_shortcode'){
        return 'Выполнить первый шорткод';
    }
    // вызов из 'my_secondary_shortcode'
    else if($tag == 'my_secondary_shortcode'){
        return 'Выполнить второй шорткод';
    }
    //default
    else{
        return 'Что-то другое';
    }
}
add_shortcode('my_primary_shortcode','display_my_shortcode');
add_shortcode('my_secondary_shortcode','display_my_shortcode');

Вывести

  • Только на главной странице: is_home()
  • Только на страницах постов: is_single()
  • Только на страницах: is_page()
  • Только на страницах архива (категорий, тэгов и т.д.): is_archive()
  • На страницах результата поиска: is_search()
  • На всех страницах, кроме главной: !is_home()
  • На страницах “Проект” или “Контакты”: is_page('project') || is_page('contact')
htmlhook.ru | Скрипты для веб-приложений