php - WordPress 元标记挑战

标签 php jquery wordpress metadata

我目前正在尝试为电视节目创建一个网站,但由于某些 wordpress 的限制,这正成为一个挑战。

但是我通过在 functions.php 文件中实现自定义元字段来绕过它,现在我的问题是当我在当前字段中提交信息时我需要它来主动创建新字段。例如自定义元数据框名称是
(Episode Name="就是这样") (Episode Number="1") (Season Number="5")

我不想从一开始就创建所有的框,而是希望使用 Javascript (jQuery) 或任何解决方案来自动创建一组新的这 3 个框
(剧集名称="") (剧集编号="") (季号="") 这样我就可以在新信息出现时输入它们。预先感谢您的帮助!

注意:我在 wordpress 上投入了太多时间,以至于无法切换到另一个 cms,所以目前这不是一个选择。

最佳答案

根据我对您问题的理解,您正在寻找一种简单的解决方案来自动执行输入过程。我对您需要实现的目标有一个大致的了解,因为我不得不在宣传册类型的网站上做类似的事情。

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

首先我找到了以下插件:Types - Complete Solution for Custom Fields and Types here: 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;
}

希望这对 friend 有帮助!

关于php - WordPress 元标记挑战,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8251849/

相关文章:

wordpress - Woocommerce 无法禁用访客结账

javascript - 如何使用 jQuery 解决这个问题

jquery - 获取隐藏元素

php - 从不同主机将数据从 Postgresql 传输到 Mysql(从 RoR 数据库到 Wordpress 数据库)

php - 删除 FTP 连接上的文件夹和所有文件

jquery - 星级评分 jquery 星级评分小部件和 split 星的错误呈现

php - 从循环中排除当前帖子

php - 更改 WooCommerce 默认密码安全级别

javascript - 使用 Canvas2image 将 HTML 转换为 PNG,然后将 PNG 转换为 BMP

php - 在 php pdo mysql 中登录网站时如何显示用户个人资料和所有用户信息?