267 lines
6.0 KiB
PHP
267 lines
6.0 KiB
PHP
<?php
|
||
|
||
define('IMGURL', 'http://img.vetandlife.ru/');
|
||
define("COOK_GOLOS", "_ya_id_76543_w");
|
||
define("COOK_VALUE", "7895");
|
||
|
||
require get_template_directory().'/src/calend-block.php';
|
||
require get_template_directory().'/src/calendar.php';
|
||
|
||
# регистрируем меню
|
||
register_nav_menus(array(
|
||
'top' => 'Верхнее меню',
|
||
'bottom' => 'Нижнее меню',
|
||
'left' => 'Левое меню'
|
||
));
|
||
|
||
# поддержка миниматюр
|
||
add_theme_support('post-thumbnails');
|
||
|
||
# регистрируем размеры миниатюр
|
||
add_image_size( 'left-thumb', 95, 84, true ); # для левой колонки
|
||
add_image_size( 'moread', 372, 216, true ); # читайте также
|
||
add_image_size( 'subscripts', 198, 145, true ); # рассылка
|
||
|
||
|
||
#add scripts
|
||
/**
|
||
function tutsplus_burger_menu_scripts() {
|
||
|
||
wp_enqueue_script( 'burger-menu-script', get_stylesheet_directory_uri() . '/scripts/burger-menu.js', array( 'jquery' ) );
|
||
|
||
}
|
||
add_action( 'wp_enqueue_scripts', 'tutsplus_burger_menu_scripts' );
|
||
*/
|
||
|
||
/** add mobile block */
|
||
function mob_block($template){
|
||
|
||
$subclass = " mob-lite";
|
||
include get_template_directory().$template;
|
||
|
||
}
|
||
|
||
|
||
//свой шаблон для категории
|
||
add_filter( 'single_template', function ( $single_template ) {
|
||
|
||
|
||
foreach( (array) get_the_category() as $cat ) {
|
||
|
||
if ( file_exists(TEMPLATEPATH . "/single-{$cat->slug}.php") )
|
||
return TEMPLATEPATH . "/single-{$cat->slug}.php";
|
||
|
||
}
|
||
|
||
return $single_template;
|
||
|
||
|
||
}, PHP_INT_MAX, 2 );
|
||
|
||
|
||
|
||
function kuri_set($name = null, $value = null) {
|
||
|
||
static $vars = array();
|
||
|
||
if ($name == null)
|
||
return $vars;
|
||
|
||
if ($value == null){
|
||
if(array_key_exists($name, $vars))
|
||
return $vars[$name];
|
||
}
|
||
else
|
||
$vars[$name] = $value;
|
||
return false;
|
||
|
||
}
|
||
|
||
# время для rss
|
||
function _U2RFC822($date) {
|
||
|
||
$datatime = explode(" ",$date);
|
||
$dater = explode("-",$datatime[0]);
|
||
$timer = explode(":",$datatime[1]);
|
||
|
||
return date('r', mktime($timer[0], $timer[1], $timer[2], $dater[1], $dater[2], $dater[0]));
|
||
}
|
||
|
||
|
||
|
||
/**
|
||
* плагин перевода в латиницу
|
||
*/
|
||
|
||
add_action( 'save_post', 'lat_slug' );
|
||
|
||
function lat_slug( $post_id ){
|
||
|
||
if ($post_id < 15789)
|
||
return; // залитое старье не трогаем
|
||
|
||
// только публикованные
|
||
if ( wp_is_post_revision( $post_id ) || get_post($post_id)->post_status != 'publish' )
|
||
return;
|
||
|
||
$post = get_posts($post_id);
|
||
$name = urldecode($post[0]->post_name);
|
||
|
||
if (isContainsRussianLetters($name)) { //если есть русские буковки
|
||
$title = express_slug($post[0]->post_title);
|
||
$latname = vij_slug($title);
|
||
remove_action( 'save_post', 'lat_slug' ); // избегаем зацикливания
|
||
wp_update_post( array( 'ID' => $post_id, 'post_name' => $latname ) );
|
||
add_action( 'save_post', 'lat_slug' );
|
||
}
|
||
|
||
|
||
}
|
||
|
||
function vij_slug($slug) {
|
||
$replace = array(
|
||
'А' => 'A', 'а' => 'a',
|
||
'Б' => 'B', 'б' => 'b',
|
||
'В' => 'V', 'в' => 'v',
|
||
'Г' => 'G', 'г' => 'g',
|
||
'Д' => 'D', 'д' => 'd',
|
||
'Е' => 'E', 'е' => 'e',
|
||
'Ё' => 'Jo', 'ё' => 'jo',
|
||
'Ж' => 'Zh', 'ж' => 'zh',
|
||
'З' => 'Z', 'з' => 'z',
|
||
'И' => 'I', 'и' => 'i',
|
||
'Й' => 'J', 'й' => 'j',
|
||
'К' => 'K', 'к' => 'k',
|
||
'Л' => 'L', 'л' => 'l',
|
||
'М' => 'M', 'м' => 'm',
|
||
'Н' => 'N', 'н' => 'n',
|
||
'О' => 'O', 'о' => 'o',
|
||
'П' => 'P', 'п' => 'p',
|
||
'Р' => 'R', 'р' => 'r',
|
||
'С' => 'S', 'с' => 's',
|
||
'Т' => 'T', 'т' => 't',
|
||
'У' => 'U', 'у' => 'u',
|
||
'Ф' => 'F', 'ф' => 'f',
|
||
'Х' => 'H', 'х' => 'h',
|
||
'Ц' => 'C', 'ц' => 'c',
|
||
'Ч' => 'Ch', 'ч' => 'ch',
|
||
'Ш' => 'Sh', 'ш' => 'sh',
|
||
'Щ' => 'Shh', 'щ' => 'shh',
|
||
'Ъ' => '', 'ъ' => '',
|
||
'Ы' => 'Y', 'ы' => 'y',
|
||
'Ь' => '', 'ь' => '',
|
||
'Э' => 'E', 'э' => 'e',
|
||
'Ю' => 'Ju', 'ю' => 'ju',
|
||
'Я' => 'Ya', 'я' => 'ya'
|
||
);
|
||
|
||
|
||
return strtr($slug, $replace);
|
||
|
||
|
||
}
|
||
|
||
|
||
function isContainsRussianLetters($text = false) {
|
||
if ($text !== "") {
|
||
$len = strlen($text)-1;
|
||
for ($i=0;$i<=$len;$i++) {
|
||
if (($i < $len) and (((($ord = ord(substr($text,$i,1))) == 208)
|
||
and (($ord2 = ord(substr($text,($i+1),1))) == 129)
|
||
or (($ord2 >= 144) and ($ord2 <= 191)))
|
||
or ((($ord = ord(substr($text,$i,1))) == 209)
|
||
and ($ord2 == 145) or (($ord2 >= 128)
|
||
and ($ord2 <= 143))))) {
|
||
//Поиск русских букв в UTF-8
|
||
return true;
|
||
} elseif (((($ord = ord(substr($text,$i,1))) >= 192)
|
||
and (($ord <= 255)) or ($ord == 168) or ($ord == 184))) {
|
||
//Поиск русских букв в ANSI
|
||
return true;
|
||
}
|
||
}
|
||
}
|
||
return false;
|
||
}
|
||
|
||
|
||
function express_slug($value){
|
||
|
||
|
||
$result = mb_strtolower(trim($value));
|
||
|
||
$arr = [
|
||
'$' => '',
|
||
' ' => '-',
|
||
'.' => '',
|
||
'+' => '',
|
||
'!' => '',
|
||
'*' => '',
|
||
'(' => '',
|
||
')' => '',
|
||
',' => '-',
|
||
'{' => '',
|
||
'}' => '',
|
||
'|' => '-',
|
||
'^' => '',
|
||
'~' => '',
|
||
'[' => '-',
|
||
']' => '-',
|
||
'`' => '',
|
||
'<' => '',
|
||
'>' => '',
|
||
'#' => '',
|
||
'%' => '',
|
||
'"' => '',
|
||
';' => '',
|
||
'/' => '',
|
||
'?' => '',
|
||
':' => '',
|
||
'@' => '',
|
||
'&' => '',
|
||
'=' => '',
|
||
'.' => '',
|
||
'«' => '',
|
||
'»' => '',
|
||
"'"=> ''
|
||
];
|
||
|
||
$result = strtr($result, $arr);
|
||
|
||
return $result;
|
||
|
||
}
|
||
|
||
|
||
function eventdate($val){
|
||
$posT = strpos($val, 'T');
|
||
|
||
if ($posT)
|
||
|
||
return $val;
|
||
}
|
||
|
||
|
||
|
||
/**
|
||
*
|
||
*/
|
||
|
||
if (!function_exists('view')){
|
||
function view ($view, $data = array(), $layer = null){
|
||
|
||
ob_start();
|
||
|
||
if (is_array($data))
|
||
extract($data);
|
||
if ($layer !== null){
|
||
$content = view($view, $data);
|
||
require $layer;
|
||
}
|
||
else
|
||
require $view;
|
||
|
||
return trim(ob_get_clean());
|
||
|
||
}
|
||
}
|