Дополнительные HTML теги в редакторе WordPress

10.11.2017 | Автор: Maxim Glovatsky

По дефолту, редактор WordPress не позволяет HTML теги, которые не совместимы со стандартом XHTML 1.0. Но, представленный ниже код заставит редактор поддерживать больше тегов. Вы можете вставить фрагмент кода в файл functions.php вашей темы, сохранить его, и функция будет работать.

<?php
function fb_change_mce_options($initArray) {
    // Comma separated string od extendes tags
    // Command separated string of extended elements
    $ext = 'pre[id|name|class|style],iframe[align|longdesc|name|width|height|frameborder |scrolling|marginheight|marginwidth|src]';
    if ( isset( $initArray['extended_valid_elements'] ) ) {
    $initArray['extended_valid_elements'] .= ',' . $ext;
    } else {
        $initArray['extended_valid_elements'] = $ext;
    }
 
    // maybe; set tiny paramter verify_html
    //$initArray['verify_html'] = false;
    return $initArray;
}
add_filter('tiny_mce_before_init', 'fb_change_mce_options');
?>

Отображение AdSense в WordPress только для посетителей с поисковых систем

05.11.2017 | Автор: Maxim Glovatsky

Можно показать AdSense, на сайте WordPress, только для посетителей, пришедшим через поиск поисковых систем, и вот код для этого, просто вставьте его в файл functions.php вашей темы:

<?php
function fromasearchengine(){
    $ref = $_SERVER['HTTP_REFERER'];
    $SE = array('/search?', 'images.google.', 'web.info.com', 'search.', 'del.icio.us/search', 'soso.com', '/search/', '.yahoo.');
    foreach ($SE as $source) {
        if (strpos($ref,$source)!==false) return true;
    }
    return false;
}
?>

В массиве $SE Вы определяете поисковые системы. Вы можете добавить новую поисковую систему, добавив элемент в массив, затем вставить код где угодно в шаблоне, где Вы хотите показать рекламу AdSense, и все! Реклама будет отображаться только посетителям, пришедшим на сайт через поисковые системы.

<?php
if (function_exists('fromasearchengine')) {
    if (fromasearchengine()) {
        INSERT YOUR AdSense CODE HERE
    }
}
?>

Установка даты/времени срока актуальности записи в WordPress

30.10.2017 | Автор: Maxim Glovatsky

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

<?php
if (have_posts()) :
    while (have_posts()) : the_post(); ?>
    $expirationtime = get_post_custom_values('expiration');
    if (is_array($expirationtime)) {
        $expirestring = implode($expirationtime);
    }
    $secondsbetween = strtotime($expirestring)-time();
    if ( $secondsbetween > 0 ) {
        // For exemple...   the_title();
        the_excerpt();
        }
    endwhile;
endif;
?>

Чтобы создать пост с датой/временем потери актуальности, Вам нужно просто создать свое поле. Передайте expiration в качестве ключа и Вашу дату/время (формат: мм/дд/гг 00:00:00) в качестве значения. Пост теперь не будет показываться после указанного момента времени.

Отображение “популярных записей” в сайдбаре WordPress без плагина

25.10.2017 | Автор: Maxim Glovatsky

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

<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

20.10.2017 | Автор: Maxim Glovatsky

Код ниже позволяет вашему WordPress сайту показывать похожие посты, основываясь на тегах текущего поста. Вам нужно разместить его внутри single.php или просто где угодно, где вы хотите показать похожие посты:

<?php
$tags = wp_get_post_tags($post->ID);
    if ($tags) {
        $tag_ids = array();
        foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
        $args=array(
        'tag__in' => $tag_ids,
        'post__not_in' => array($post->ID),
        'showposts'=>5, // Number of related posts that will be shown.
        'caller_get_posts'=>1
        );
    $my_query = new wp_query($args);
        if( $my_query->have_posts() ) {
            echo '<h3>Related Posts</h3><ul>';
            while ($my_query->have_posts()) {
                $my_query->the_post();
                ?>
                <li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
            <?php
            }
            echo '</ul>';
        }
    }
?>

Автоматическое добавление ссылки “Читать далее” в конце анонса записи в WordPress

15.10.2017 | Автор: Maxim Glovatsky

Добавление приведенного ниже фрагмента кода в файл functions.php вашей WordPress темы вставит постоянную ссылку "Read More" в конец the_excerpt, очень похоже на то, как ссылка в конце содержимого the_content:

<?php
function excerpt_readmore($more) {
    return '... <a href="'. get_permalink($post->ID) . '" class="readmore">' . 'Read More' . '</a>';
}
add_filter('excerpt_more', 'excerpt_readmore');
?>

Автоматическая замена слов партнерскими ссылками в WordPress

10.10.2017 | Автор: Maxim Glovatsky

Чтобы заменить слова партнерскими ссылками автоматически, просто вставьте код ниже в ваш файл functions.php. Не забудьте вставить ваши слова/ссылки, как показано в примере ниже.

<?php
function replace_text_wps($text){
    $replace = array(
    // 'WORD TO REPLACE' => 'REPLACE WORD WITH THIS'
    'thesis' => '<a href="http://mysite.com/myafflink">thesis</a>',
    'studiopress' => '<a href="http://mysite.com/myafflink">studiopress</a>'
    );
    $text = str_replace(array_keys($replace), $replace, $text);
    return $text;
}
add_filter('the_content', 'replace_text_wps');
add_filter('the_excerpt', 'replace_text_wps');
?>