Как это сделать в WordPress

В заметке собраны части кода, добавляющие те или иные фичи для WordPress. Для использования, поместите код понравившейся фичи в functions.php текущей темы.

Как подключить скрипты в head или footer

Чтобы вставить код метрики, карт или любой другой js-скрипт нужный вашему сайту, воспользуйтесь следующим кодом.

Для подключения скриптов в head:

// Подключение скриптов в head
function td_head_scripts() {
    ?>
        <!-- ниже ваши js скрипты --> 
    <?php
 }
 add_action( 'wp_head', 'td_head_scripts' );

Для подключения скриптов в footer:

// Подключение скриптов в footer
function td_footer_scripts() {
    ?>
        <!-- ниже ваши js скрипты --> 
    <?php
}
add_action( 'wp_footer', 'td_footer_scripts' );

Как добавить контент или код в конец или начало поста

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

// Функция добавляет контент после записи
function td_custom_content($content){
if (is_single()) { 
    $content .= '<p>Контент</p>';
}
    return $content;
}
add_filter('the_content', 'td_custom_content');

Блок с контентом будет добавлен в конец поста. Аналогично можно добавить блок в начало поста:

// Функция добавляет контент до записи
function td_custom_content($content){
if (is_single()) { 
    $temp = '<p>Контент</p>';
    $content = $temp . $content;
}
    return $content;
}
add_filter('the_content', 'td_custom_content');

Как загружать картинки в папки, отдельные для каждого поста

WordPress при загрузке медифайлов раскладывает их в папки по месяцам и годам закачки. Это не удобно. Ниже код, который при загрузке медиафайлов будет создавать папку с именем поста и класть загружаемые фалы в нее.

// Функция кладет загружаемые файлы изображений в папку с именем поста
add_filter('wp_handle_upload_prefilter', 'tp_handle_upload_prefilter');
add_filter('wp_handle_upload', 'tp_handle_upload');
function tp_handle_upload_prefilter( $file ) {
    add_filter('upload_dir', 'tp_custom_upload_dir');
    return $file;
}
function tp_handle_upload( $fileinfo ) {
    remove_filter('upload_dir', 'tp_custom_upload_dir');
    return $fileinfo;
}
function tp_custom_upload_dir($path) {   
$use_default_dir = ( isset($_REQUEST['post_id'] ) && $_REQUEST['post_id'] == 0 ) ? true : false; 
if( !empty( $path['error'] ) || $use_default_dir )
return $path;
$the_post = get_post($_REQUEST['post_id']);
$customdir = '/' . $the_post->post_name;
$path['path']    = str_replace($path['subdir'], '', $path['path']);
$path['url']     = str_replace($path['subdir'], '', $path['url']);      
$path['subdir']  = $customdir;
$path['path']   .= $customdir; 
$path['url']    .= $customdir;  
return $path;
}

Как убрать подпись Личное у личных записей

// Функция убирает подпись личное у личных записей
function td_private_title_format() {
    return '%s';
}
add_filter( 'private_title_format', 'td_private_title_format' );

На этом всё. Но вы можете помочь проекту. Даже небольшая сумма поможет нам писать больше полезных статей.

А если статья помогла или понравилась, пожалуйста поделитесь ей в соцсетях.