Вызов мета-тега Wordpress


В настоящее время я пытаюсь создать сайт для телешоу, и из-за определенных ограничений wordpress это становится проблемой.

Однако я обходил это с помощью реализации пользовательских мета-полей в functions.php файл, теперь моя проблема в том, что он мне нужен для активного создания новых полей при отправке информации в текущем поле. Например, пользовательские имена метабоксов
(Episode Name="This is It") (Episode Number="1") (Season Number="5")

Вместо того, чтобы создавать все коробки с самого начала, я хотел бы использовать Javascript (jQuery) или любое решение для автоматического создания нового набора из этих 3 блоков
(Episode Name="") (Episode Number="") (Season Number="") так что я могу просто вводить новую информацию по мере их поступления. Заранее благодарю вас за вашу помощь!

Примечание: Я вложил слишком много времени в wordpress, чтобы просто переключиться на другую cms, так что на данный момент это не вариант.

Author: marc_s, 2011-11-24

3 answers

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

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

Сначала я нашел следующий плагин: Типы - Полное решение для пользовательских полей и типов здесь: http://wordpress.org/extend/plugins/types/

Это позволяет создавать пользовательские мета-поля при создании нового сообщения/страницы. Пользовательские поля добавляются с добавлением "wpcf-", а затем имя поля, например "Название эпизода", становится "wpcf-название эпизода" в базе данных.

Ниже приводится редактирование get_meta wordpress функция:

function get_specifications(){
    if ( $keys = get_post_custom_keys() ) {
    echo '<div class="entry_specifications">';
    foreach ( (array) $keys as $key ) {
        $keyt = trim($key);
            if ( '_' == $keyt[0] )
            continue;
            $values = array_map('trim', get_post_custom_values($key));
            $value = implode($values,', ');

            //remove "wpcf-"
            $key = str_replace('wpcf-','',$key);

            //convert "-" to a space " "
            $key = str_replace('-',' ',$key);

            //check if it has a value, continue if it does, skip if it doesn't:
            if ($value <> ''){
                echo apply_filters('the_meta_key', "
                <div class='meta_wrapper'>
                    <div class='meta_title'>$key</div>
                    <div class='meta_value'>$value</div>
                </div>\n", $key, $value);
            };

        }

   }
   // echo '</div>'; comment out and remove the line below if you are not using floats in your css
   echo '</div><div class="clear"></div>';
}

В моем page.php (или ваш template-page.php ) Я добавил следующий код, когда/где я хочу, чтобы была создана мета:

<?php

//check to see if there is meta data, as you only want the meta data on TV Program pages
$met_check = get_post_meta($post->ID, 'wpcf-features', true);

if ($met_check <> ''){ 
//if it has a value, spit out "About EpisodeName" ?>  
    <h2 class="post-title clear">About <?php echo $title ?></h2>

    <?php //perform the function from functions.php and return results:
    echo get_specifications();
}
?>

Я оформил результат с помощью следующего CSS:

.meta_entry {
    clear:both;
}
.meta_title {
    float:left;
    text-transform:capitalize;
    width:200px;
}
.meta_value {
    float:left;
    width:480px;
}

Надеюсь, это поможет мату!

 2
Author: Terry Barriff, 2011-12-22 10:55:28

Существует замечательный плагин для WordPress под названием Pods, который может быть жизнеспособным решением.

 2
Author: Zerodestiny, 2011-11-24 04:09:54
 1
Author: Vasanthan.R.P, 2011-11-24 10:14:29