Wordpress元标记挑战

时间:2011-11-24 03:17:26

标签: php jquery wordpress metadata

我目前正在尝试为电视节目创建一个网站,由于某些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,所以这不是一个选项。

3 个答案:

答案 0 :(得分:2)

有一个很棒的wordpress插件,名为Pods,可能是一个可行的解决方案。

答案 1 :(得分:2)

根据我对您的问题的理解,您正在寻找一种简单的解决方案来自动化输入过程。我对你要实现的目标有一个大概的了解,因为我必须在小册子类型的网站上做类似的事情。

我已尝试使用Jquery回答您的问题,但我发现它会增加创建帖子时所需的文本输入量,遗憾的是没有完全自动化的方法,但希望下面会为您提供解决方案。

首先我找到了以下插件:类型 - 自定义字段和类型的完整解决方案:http://wordpress.org/extend/plugins/types/

这允许您在创建新帖子/页面时创建自定义元组件。自定义场被添加了“wpcf-”的背景,然后是场的名称,例如“剧集名称”在数据库中变为“wpcf-episode-name”。

以下是wordpress的get_meta函数的编辑:

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 :(得分:1)