ktomov
Premium
Направи ми впечатление, че скоро време не съм писал в този раздел, та да взема да се отбележа.
Както ставя ясно от заглавието на темата, това за което ще пиша тук е възможностите които ни се отварят чрез файла functions.php в темплейта. То не е в самият файл магията, а от филтрите, които присъстват в самият wordpress. Та следващите функции може да ги добавите директно във файла на вашата тема и ще свършат точно това което е описано.
Ще се радвам ако и вие споделите нещичко
Повече информация за add_filter -> http://codex.wordpress.org/Function_Reference/add_filter
Повече информация за add_shortcode -> http://codex.wordpress.org/Function_Reference/add_shortcode
Функциите може да ги намерите като добавка, която само трябва да активирате в мнението ми по-долу - цък тук
Както ставя ясно от заглавието на темата, това за което ще пиша тук е възможностите които ни се отварят чрез файла functions.php в темплейта. То не е в самият файл магията, а от филтрите, които присъстват в самият wordpress. Та следващите функции може да ги добавите директно във файла на вашата тема и ще свършат точно това което е описано.
PHP:
// Добавя клас my-custom-class към първата публикация за лесно стилизиране
function wp001_first_post_class( $firstclass ) {
global $wp_query;
if( 0 == $wp_query->current_post )
$firstclass[] = 'my-custom-class'; //Тук трябва да се промени с името на новият клас
return $firstclass;
}
add_filter( 'post_class', 'wp001_first_post_class' );
PHP:
// Лесен начин за добавяне на еднакво съдържание чрез шорткод.
// По този начин може да създадете каквито желаете шорткоди и те ще бъдат заменени в публикацията.
// [myshortcode] ще изведе "Visit my website" с линк към mywebsite.com
function wp002_myshortcode(){
return '<a href="http://mywebsite.com">Visit my website</a>';
}
add_shortcode('myshortcode', 'wp002_myshortcode');
PHP:
// Добавя миниатюри (снимки) в рсс фийда.
function wp003_post_thumbnail_feeds($content) {
global $post;
if(has_post_thumbnail($post->ID)) {
$content = '<div>' . get_the_post_thumbnail($post->ID) . '</div>' . $content;
}
return $content;
}
add_filter('the_excerpt_rss', 'wp003_post_thumbnail_feeds');
add_filter('the_content_feed', 'wp003_post_thumbnail_feeds');
PHP:
// Промяна на генератор тага. Много го премахват, за да се защитят от злонамерени "хакери"
// По този начин може да залъжете ботовете, че ползвате съвсем различен CMS
function wp004_change_generators() {
return '<meta name="generator" content="WordPress 2012.9" />';
}
add_filter( 'the_generator', 'wp004_change_generators' );
PHP:
// Добавяне на lightbox към всички картинки в статията чрез rel="lightbox".
// Имайте предвид, че може да го промените с каквото желаете. Освен това се добавя и Title атрибут от заглавието на публикацията.
function wp005_lightbox_rel($content) {
global $post;
$pattern ="/<a(.*?)href=('|\")(.*?).(bmp|gif|jpeg|jpg|png)('|\")(.*?)>/i";
$replacement = '<a$1href=$2$3.$4$5 rel="lightbox" title="'.$post->post_title.'"$6>';
$content = preg_replace($pattern, $replacement, $content);
return $content;
}
add_filter('the_content', 'wp005_lightbox_rel');
PHP:
// Премахва query стринга при зареждане на цсс и джаваскриптовете. Обикновено там стои версията на добавката.
// По съвет от гугъл за pagespeed. Пример:
// <script type='text/javascript' src='http://domain.com/wp-includes/js/jquery/jquery.js?ver=1.7.2'></script>
// ще стане
// <script type='text/javascript' src='http://domain.com/wp-includes/js/jquery/jquery.js'></script>
function wp006_remove_script_version( $src ){
$parts = explode( '?', $src );
return $parts[0];
}
add_filter( 'script_loader_src', 'wp006_remove_script_version', 15, 1 );
add_filter( 'style_loader_src', 'wp006_remove_script_version', 15, 1 );
PHP:
// Добавя линк към публикацията в рсс фийда след съдържанието. Полезно ако ви скейпват съдържанието чрез рсс
function wp007_rss_link($content) {
if(is_feed()){
$content = '.$content.';
$extra = "<a href='" . get_permalink() . "'>Кликнете тук</a>";
}
return $content . $extra;
}
add_filter('the_excerpt_rss', 'wp007_rss_link');
add_filter('the_content', 'wp007_rss_link');
PHP:
// Зарежда jQuery от CDN-а на google вместо от wp-includes папката
add_action( 'init', 'wp008_jquery_register' );
function wp008_jquery_register() {
if ( !is_admin() ) {
wp_deregister_script( 'jquery' );
wp_register_script( 'jquery', ( 'https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js' ), false, null, true );
wp_enqueue_script( 'jquery' );
}
}
PHP:
// Ограничаване на възможните файлове за качване. По този начин ще се допуснат само gif и jpeg файлове.
function wp009_restrict_mime($mimes) {
$mimes = array(
'jpg|jpeg|jpe' => 'image/jpeg',
'gif' => 'image/gif',
);
return $mimes;
}
add_filter('upload_mimes','wp009_restrict_mime');
PHP:
// Заменя нежеланите думи в коментарите с други. Подходящи при спам, а и ако желаете да вкултурите потребителите си
// Пример: 'Дума за замяна' => 'Заменената дума'. Имайте предвид, че последния ред от низа не трябва да има запетая в края.
function wp_010_filter_comment($comment) {
$replace = array(
'fuck' => 'f***',
'suck' => 's**k'
);
$comment = str_replace(array_keys($replace), $replace, $comment);
return $comment;
}
add_filter( 'pre_comment_content', 'wp_010_filter_comment' );
Ще се радвам ако и вие споделите нещичко
Повече информация за add_filter -> http://codex.wordpress.org/Function_Reference/add_filter
Повече информация за add_shortcode -> http://codex.wordpress.org/Function_Reference/add_shortcode
Функциите може да ги намерите като добавка, която само трябва да активирате в мнението ми по-долу - цък тук
Последно редактирано: