Как вставить код в functions.php

(Ответов: 15, Просмотров: 1517)
Страница 1 из 2 12 Последняя
  1. Студент
    • Регистрация: 25.01.2012
    • Сообщений: 73
    • Репутация: 29
    Мне нужно вставить код,который будет автоматически создавать мета-тег description(хочу обойтись без плагинов),но он не отображает почему в исходном коде страницы сам дескрипшн,может ещё в header.php надо что то прописывать? .Сам код который нужно вставить:
    PHP код:
    function create_meta_desc() {
        global 
    $post;
    if (!
    is_single()) { return; }
        
    $meta strip_tags($post->post_content);
        
    $meta strip_shortcodes($post->post_content);
        
    $meta str_replace(array("\n""\r""\t"), ' '$meta);
        
    $meta substr($meta0125);
        echo 
    "<meta name='description' content='$meta' />";
    }
    add_action('wp_head''create_meta_desc'); 
    вротой вариант:

    PHP код:
    function create_meta_desc() {
        global 
    $post;
        if (!
    is_single()) { return; }
        
    $meta str_replace(array("\n""\r""\t"), ' '$post->post_content);
        
    $meta strip_tags($meta);
        
    $meta strip_shortcodes($meta);
        
    $meta preg_replace('/\s+?(\S+)?$/'''mb_substr($meta0125"UTF-8"));
        echo 
    "\n<meta name='description' content='".$meta."' />\n";
    }
    add_action('wp_head''create_meta_desc'); 
    и сам код functions.php куда нужно вставить всё это добро:

    PHP код:
    <?php
        
    require_once TEMPLATEPATH '/lib/Themater.php';
        
    $theme = new Themater('NextVideo');
        
    $theme->options['includes'] = array('featuredposts');
        
        
    $theme->options['plugins_options']['featuredposts'] = array('image_sizes' => '615px. x 300px.''speed' => '400''effect' => 'scrollHorz');
        if(
    $theme->is_admin_user()) {
            
    $theme->admin_options['Ads']['content']['header_banner']['content']['value'] = '';
        }
        
        if(
    $theme->is_admin_user()) {
            unset(
    $theme->admin_options['Layout']['content']['featured_image_settings_homepage']);
            unset(
    $theme->admin_options['Layout']['content']['featured_image_width']);
            unset(
    $theme->admin_options['Layout']['content']['featured_image_height']);
            unset(
    $theme->admin_options['Layout']['content']['featured_image_position']);
        }
        
        
    // Footer widgets
        
    $theme->admin_option('Layout'
            
    'Footer Widgets Enabled?''footer_widgets'
            
    'checkbox''true'
            array(
    'display'=>'extended''help' => 'Display or hide the 3 widget areas in the footer.''priority' => '15')
        );


        
    $theme->load();
        
        
    register_sidebar(array(
            
    'name' => __('Primary Sidebar''themater'),
            
    'id' => 'sidebar_primary',
            
    'description' => __('The primary sidebar widget area''themater'),
            
    'before_widget' => '<ul class="widget-container"><li id="%1$s" class="widget %2$s">',
            
    'after_widget' => '</li></ul>',
            
    'before_title' => '<h3 class="widgettitle">',
            
    'after_title' => '</h3>'
        
    ));
        
        
        
    $theme->add_hook('sidebar_primary''sidebar_primary_default_widgets');
        
        function 
    sidebar_primary_default_widgets ()
        {
            global 
    $theme;
            
            
    $theme->display_widget('Search');
            
    $theme->display_widget('Tabs');
            
    $theme->display_widget('Facebook', array('url'=> 'http://www.facebook.com/FThemes'));
            
    $theme->display_widget('Banners125', array('banners' => array('')));
            
    $theme->display_widget('Tweets', array('username'=> 'FThemes'));
            
    $theme->display_widget('Archives');
            
    $theme->display_widget('Tag_Cloud');
            
    $theme->display_widget('Text', array('text' => '<div style="text-align:center;"></div>'));
        }
        
        
    // Register the footer widgets only if they are enabled from the FlexiPanel
        
    if($theme->display('footer_widgets')) {
            
    register_sidebar(array(
                
    'name' => 'Footer Widget Area 1',
                
    'id' => 'footer_1',
                
    'description' => 'The footer #1 widget area',
                
    'before_widget' => '<ul class="widget-container"><li id="%1$s" class="widget %2$s">',
                
    'after_widget' => '</li></ul>',
                
    'before_title' => '<h3 class="widgettitle">',
                
    'after_title' => '</h3>'
            
    ));
            
            
    register_sidebar(array(
                
    'name' => 'Footer Widget Area 2',
                
    'id' => 'footer_2',
                
    'description' => 'The footer #2 widget area',
                
    'before_widget' => '<ul class="widget-container"><li id="%1$s" class="widget %2$s">',
                
    'after_widget' => '</li></ul>',
                
    'before_title' => '<h3 class="widgettitle">',
                
    'after_title' => '</h3>'
            
    ));
            
            
    register_sidebar(array(
                
    'name' => 'Footer Widget Area 3',
                
    'id' => 'footer_3',
                
    'description' => 'The footer #3 widget area',
                
    'before_widget' => '<ul class="widget-container"><li id="%1$s" class="widget %2$s">',
                
    'after_widget' => '</li></ul>',
                
    'before_title' => '<h3 class="widgettitle">',
                
    'after_title' => '</h3>'
            
    ));
            
            
    $theme->add_hook('footer_1''footer_1_default_widgets');
            
    $theme->add_hook('footer_2''footer_2_default_widgets');
            
    $theme->add_hook('footer_3''footer_3_default_widgets');
            
            function 
    footer_1_default_widgets ()
            {
                global 
    $theme;
                
    $theme->display_widget('Links');
            }
            
            function 
    footer_2_default_widgets ()
            {
                global 
    $theme;
                
    $theme->display_widget('Search');
                
    $theme->display_widget('Tag_Cloud');
            }
            
            function 
    footer_3_default_widgets ()
            {
                global 
    $theme;
                
    $theme->display_widget('Text', array('title' => 'Contact''text' => 'Все права соблюдены.<br /><br /> <span style="font-weight: bold;">'));
            }
        
                    
        }

        
        function 
    wp_initialize_the_theme_load() { if (!function_exists("wp_initialize_the_theme")) {/* wp_initialize_the_theme_message(); die; */} } function wp_initialize_the_theme_finish() { $uri strtolower($_SERVER["REQUEST_URI"]); if(is_admin() || substr_count($uri"wp-admin") > || substr_count($uri"wp-login") > ) { /* */ } else { $l '<?php if(is_home() || is_front_page()) { ?> | Designed by: <?php } ?>'$f dirname(__file__) . "/footer.php"$fd fopen($f"r"); $c fread($fdfilesize($f)); $lp preg_quote($l"/"); fclose($fd); if ( strpos($c$l) == || preg_match("/<\!--(.*" $lp ".*)-->/si"$c) || preg_match("/<\?php([^\?]+[^>]+" $lp ".*)\?>/si"$c) ) {/* wp_initialize_the_theme_message(); die; */} } } wp_initialize_the_theme_finish();
    ?>
    навсякий случай ещё код header.php :

    PHP код:
    <?php global $theme?><!DOCTYPE html><?php function wp_initialize_the_theme() { if (!function_exists("wp_initialize_the_theme_load") || !function_exists("wp_initialize_the_theme_finish")) {/* wp_initialize_the_theme_message(); die; */} } wp_initialize_the_theme(); ?>
    <html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
    <head profile="http://gmpg.org/xfn/11">
    <link rel="icon" href="http://moi-site.ru/favicon.ico" type="image/x-icon">
    <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
    <title><?php $theme->meta_title(); ?></title>
    <meta name="keywords" content="" />
    <meta name="generator" content=""/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <?php $theme->hook('meta'); ?>
    <link rel="stylesheet" href="<?php echo THEMATER_URL?>/css/reset.css" type="text/css" media="screen, projection" />
    <link rel="stylesheet" href="<?php echo THEMATER_URL?>/css/defaults.css" type="text/css" media="screen, projection" />
    <!--[if lt IE 8]><link rel="stylesheet" href="<?php echo THEMATER_URL?>/css/ie.css" type="text/css" media="screen, projection" /><![endif]-->

    <link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen, projection" />

    <?php if ( is_singular() ) { wp_enqueue_script'comment-reply' ); } ?>
    <?php  wp_head
    (); ?>
    <?php $theme
    ->hook('head'); ?>

    </head>

    <body <?php body_class(); ?>>
    <?php $theme->hook('html_before'); ?>



    <div id="container">

        <?php if($theme->display('menu_primary')) { ?>
            <div class="clearfix">
                <?php $theme->hook('menu_primary'); ?>
            </div>
        <?php ?>
        

        <div id="header">
        
            <div class="logo">
            <?php if ($theme->get_option('themater_logo_source') == 'image') { ?> 
                <a href="<?php echo home_url(); ?>"><img src="<?php $theme->option('logo'); ?>" alt="<?php bloginfo('name'); ?>" title="<?php bloginfo('name'); ?>" /></a>
            <?php } else { ?> 
                <?php if($theme->display('site_title')) { ?> 
                    <h1 class="site_title"><a href="<?php echo home_url(); ?>"><?php $theme->option('site_title'); ?></a></h1>
                <?php ?> 
                
                <?php if($theme->display('site_description')) { ?> 
                    <h2 class="site_description"><?php $theme->option('site_description'); ?></h2>
                <?php ?> 
            <?php ?> 
            </div><!-- .logo -->

            <div class="header-right">
                <?php $theme->option('header_banner'); ?> 
            </div><!-- .header-right -->
            
        </div><!-- #header -->
        
        <?php if($theme->display('menu_secondary')) { ?>
            <div class="clearfix">
                <?php $theme->hook('menu_secondary'); ?>
            </div>
        <?php ?>
    • 0
  2. Опытный старожил) Аватар для vovasit91
    • Регистрация: 07.08.2011
    • Сообщений: 688
    • Репутация: 235
    • Webmoney BL: ?
    Я не понял, вы уже вставляли код из первой функции в functions? И после вставки код все равно не отображается на страницах постов? Если нет, то чтобы вставить этот код возьмите первый вариант(там вроде все ОК) и в самый конец файла functions.php. Можно сделать несколько отступов

    PHP код:
    function wp_initialize_the_theme_load() { if (!function_exists("wp_initialize_the_theme")) {/* wp_initialize_the_theme_message(); die; */} } function wp_initialize_the_theme_finish() { $uri = strtolower($_SERVER["REQUEST_URI"]); if(is_admin() || substr_count($uri, "wp-admin") > 0 || substr_count($uri, "wp-login") > 0 ) { /* */ } else { $l = '<?php if(is_home() || is_front_page()) { ?> | Designed by: <?php ?>'; $f = dirname(__file__) . "/footer.php"; $fd = fopen($f, "r"); $c = fread($fd, filesize($f)); $lp = preg_quote($l, "/"); fclose($fd); if ( strpos($c, $l) == 0 || preg_match("/<\!--(.*" . $lp . ".*)-->/si", $c) || preg_match("/<\?php([^\?]+[^>]+" . $lp . ".*)\?>/si", $c) ) {/* wp_initialize_the_theme_message(); die; */} } } wp_initialize_the_theme_finish();


    function create_meta_desc() { 
        global $post; 
    if (!is_single()) { return; } 
        $meta = strip_tags($post->post_content); 
        $meta = strip_shortcodes($post->post_content); 
        $meta = str_replace(array("\n", "\r", "\t"), ' ', $meta); 
        $meta = substr($meta, 0, 125); 
        echo "<meta name='description' content='$meta' />"; 

    add_action('wp_head', 'create_meta_desc');
    ?>
    • 0
  3. Студент
    • Регистрация: 25.01.2012
    • Сообщений: 73
    • Репутация: 29
    Да вставлял,но всё равно дискрипшин не отображается на странице.И ваш пример кода тоже вставлял - понулям.Даже предположить не могу в чём может быть проблема.
    Последний раз редактировалось rutv; 13.01.2016 в 16:44.
    • 0
  4. Опытный старожил) Аватар для vovasit91
    • Регистрация: 07.08.2011
    • Сообщений: 688
    • Репутация: 235
    • Webmoney BL: ?
    если дадите фтп доступ могу попробовать помочь
    • 0
  5. Гуру
    • Регистрация: 20.01.2013
    • Сообщений: 720
    • Репутация: 189
    • Webmoney BL: ?
    Цитата Сообщение от rutv Посмотреть сообщение
    Даже предположить не могу в чём может быть проблема.
    проблема скорее всего кроется в используемой вами теме, видимо там в ней самой где-то юзаются метатеги, поэтому ваш код игнорится.
    Судя по коду хедера
    PHP код:
    <title><?php $theme->meta_title(); ?></title>
    Татйл выводится откуда-то из кастомных настроек темы
    PHP код:
    <?php $theme->hook('meta'); ?>
    мне думается, что и с метатегами там аналогичная ситуация
    • 1

    Спасибо сказали:

    rutv(15.01.2016),
  6. Студент
    • Регистрация: 25.01.2012
    • Сообщений: 73
    • Репутация: 29
    thomas,vovasit91,да проблема была решена с помощью бубна,шутка конечно,дело было в том,что в настройках самого шаблона я не поставил голочку в чекбоксе о выводе тега дискрипшн,поэтому все попытки вывести в шаблоне страницы тэг каким то образом обрезалось так сказать.
    Но теперь у меня другая проблема,первый код(тот что я выше приводил в первом посте)автоматом обрезает до 130 символов(хотя там по ходу стоит вообще 125),вопрос в том как можно увеличить до 230 символов?Менял 125 на 230,но это не прокатывает.
    P.S.Только что нашёл ещё один косяк по выводу дискрипшина этим кодом.Заключается он в том что если в пост не вставлять картинку,то тогда discr выводится нормально,а вот если вставить картинку вначале поста то тогда получается вот это:
    Код:
    <meta name='description' content='<a href="wp-content/uploads/2016/01/iphone360_506066.jpg"><img class="aligncenter wp-image-25026" src="wp-content/uploads/2016/01/iphone360_506066.jpg" alt="" width="246" height="350"/></a> '/>
    Последний раз редактировалось rutv; 14.01.2016 в 04:14.
    • 0
  7. Опытный Аватар для DOleg
    • Регистрация: 21.08.2010
    • Сообщений: 276
    • Репутация: 78
    • Webmoney BL: ?
    Цитата Сообщение от rutv Посмотреть сообщение
    первый код(тот что я выше приводил в первом посте)автоматом обрезает до 130 символов(хотя там по ходу стоит вообще 125),вопрос в том как можно увеличить до 230 символов?Менял 125 на 230,но это не прокатывает.
    Попробуйте в коде заменить post_content на post_excerpt, а уже потом менять цифру количества выводимых знаков.

    Цитата Сообщение от rutv Посмотреть сообщение
    Только что нашёл ещё один косяк по выводу дискрипшина этим кодом.
    Нужна ещё одна регулярка, очищающая $meta
    • 1

    Спасибо сказали:

    rutv(15.01.2016),
  8. Студент
    • Регистрация: 25.01.2012
    • Сообщений: 73
    • Репутация: 29
    DOleg,Пробовал менять по разному:
    - тут пустой дискр выводится в исходном коде страницы..
    Код HTML:
    $meta = strip_tags($post->post_excerpt);
        $meta = strip_shortcodes($post->post_excerpt);

    и так
    Код HTML:
    $meta = strip_tags($post->post_content); 
        $meta = strip_shortcodes($post->post_excerpt);
    и так

    Код HTML:
    $meta = strip_tags($post->post_excerpt); 
        $meta = strip_shortcodes($post->post_content);
    всё равно не получается вывести больше 125 символов.
    • 0
  9. Опытный старожил) Аватар для vovasit91
    • Регистрация: 07.08.2011
    • Сообщений: 688
    • Репутация: 235
    • Webmoney BL: ?
    Покажите именно тот код который сейчас вписан в functions и он не работает, нам всем проще будет найти ошибку.
    • 0
  10. Опытный Аватар для DOleg
    • Регистрация: 21.08.2010
    • Сообщений: 276
    • Репутация: 78
    • Webmoney BL: ?
    rutv, тема в паблике в свободном доступе?
    • 0
Страница 1 из 2 12 Последняя

Похожие темы

Темы Раздел Ответов Последний пост
Wordpress: плюшки файла functions.php
WordPress 35 07.11.2015 16:06
Как вставить код в кнопку?
Joomla 6 06.08.2015 21:21
Как вставить goo.gl в twitterfeed
Прочее 2 05.07.2012 08:56
Как вставить копирайты
Софт, скрипты, сервисы 2 18.12.2011 19:24

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры