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