[Помогите] Ключевые слова в футере сайта на WP

Тема в разделе "Wordpress", создана пользователем metallphilin, 20 июн 2014.

Модераторы: Sorcus
  1. metallphilin

    metallphilin старожил nulled

    Регистр.:
    25 авг 2006
    Сообщения:
    637
    Симпатии:
    183
    Нужна помощь, уважаемые знатоки WP.


    Есть сайт на WP, в файле темы footer.php нужно вывести небольшой текстовый блок в ключевиками для конкретно этой страницы: "купить слона, купить слона недорого, купить слона с ушами". И соответственно нужно что бы это дело можно было руками заполнить для каждой страницы.


    Откройте тайну, как сделать это не хитрое колдовство?
     
    Последнее редактирование: 21 июн 2014
  2. Teceract

    Teceract

    Регистр.:
    15 фев 2009
    Сообщения:
    165
    Симпатии:
    75
    один из способов
    добавляет в админку при создании записи мета блок, в который можно вписывать слова

    функция
    PHP:
    // Подключение мета-блок в админку
    add_action('admin_init', 'keywords_field', 1);
    function keywords_field() {
    add_meta_box('keywords_field_box', 'SEO', 'keywords_field_func', 'post', 'normal', 'low');
    add_meta_box('keywords_field_box', 'SEO', 'extra_fields_box_page_func', 'page', 'normal', 'high');
    }
    // HTML-код блока для постов
    function keywords_field_func( $post ){
    ?>
    <p>
    &nbsp;<em>Ключевые слова:</em>
    <label><input type="text" name="extra[keywords]" value="<?php echo get_post_meta($post->ID'keywords'1); ?>" style="width:100%" /></label>
    </p>
    <input type="hidden" name="extra_fields_nonce" value="<?php echo wp_create_nonce(__FILE__); ?>" />
    <?php
    }
    add_action('save_post''my_extra_fields_update'0);

    /* необходимо для сохранения данных с формы при сохранении поста */
    function my_extra_fields_update$post_id ){
        if ( !
    wp_verify_nonce($_POST['extra_fields_nonce'], __FILE__) ) return false// проверка
        
    if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return false// если это автосохранение
        
    if ( !current_user_can('edit_post'$post_id) ) return false// если юзер не имеет право редактировать запись

        
    if( !isset($_POST['extra']) ) return false;  

        
    // Теперь, нужно сохранить/удалить данные
        
    $_POST['extra'] = array_map('trim'$_POST['extra']);
        foreach( 
    $_POST['extra'] as $key=>$value ){
            if( empty(
    $value) )
                
    delete_post_meta($post_id$key); // удаляем поле если значение пустое

            
    update_post_meta($post_id$key$value); // add_post_meta() работает автоматически
        
    }
        return 
    $post_id;
    }
    вывод
    PHP:
    // выводим в статической странице или на страница поста
    if (is_single() || is_page()) {
    if (
    function_exists('get_post_meta') && get_post_meta($post->ID'keywords'true)) {
    echo 
    '<div>'; echo get_post_meta($post->ID'keywords'true);
    echo 
    "</div>\n";
    }}
     
    bl79 и metallphilin нравится это.
  3. Seregammx

    Seregammx

    Регистр.:
    15 май 2010
    Сообщения:
    308
    Симпатии:
    174
    не боитесь что таким образом будут заспамлены страницы сайта? ведь это поисковики учитывают и их алгоритмы постепенно дорабатываются.
    хотя говорите для конкретно этой страницы. а толк, хз.
     
  4. metallphilin

    metallphilin старожил nulled

    Регистр.:
    25 авг 2006
    Сообщения:
    637
    Симпатии:
    183
    Честно сказать не работали ранее на WP, потому капец как трудно сейчас в это вникнуть.

    Где и как это подключить в админку, напишите пожалуйста.

    И сразу такой вопрос.. у WP есть "Произвольные поля", для этой задачи они не годятся?

    Seregammx, нет не боюсь.:alko:
     
    Последнее редактирование: 21 июн 2014
  5. Teceract

    Teceract

    Регистр.:
    15 фев 2009
    Сообщения:
    165
    Симпатии:
    75
    добавляете первый код в файл functions.php вашей текущей темы, а второй код вставляете в footer.php или в single.php в любое место
    Да произвольные поля тоже можно в качестве подобного, также используете второй код и вместо 'keywords' меняете имя нового поля
    [​IMG]
     
    metallphilin нравится это.
  6. metallphilin

    metallphilin старожил nulled

    Регистр.:
    25 авг 2006
    Сообщения:
    637
    Симпатии:
    183
    произвольных полей бы нам хватило, я думаю. как корректно вывести newmetaname?


    ---Добавлено---

    разобрались.

    <?php echo get_post_meta(get_the_ID(), 'newmetaname', true); ?>
     
    Последнее редактирование: 20 июн 2014
  7. metallphilin

    metallphilin старожил nulled

    Регистр.:
    25 авг 2006
    Сообщения:
    637
    Симпатии:
    183
    Вот ещё способ, самый интересный на мой взгляд и ничего лишнего:

    1. Плагин http://wordpress.org/plugins/post-tags-and-categories-for-pages/
    2. Назначаем метки из коробки.
    3. Выводим без линков, в footer.php через strip_tags()

    <?php echo strip_tags(get_the_tag_list('<strong>','</strong>, <strong>','</strong>'), '<strong>'); ?>

    на выходе получаем, что и требовалось:

    <strong>купить слона</strong>, <strong>купить слона недорого</strong>, <strong>купить слона с ушами</strong>

    Благодарен всем, кто откликнулся. :-]
     
    Последнее редактирование: 21 июн 2014
  8. kirilko7

    kirilko7 Создатель

    Регистр.:
    25 апр 2013
    Сообщения:
    10
    Симпатии:
    2
    Можно добавить виджет в футер, для этого его нужно зарегистрировать в function.php, описание как это сделать здесь