在jQuery选项卡中显示自定义字段内容

时间:2012-04-19 作者:Samia Ruponti

我正试图使一个职位,将包含几个自定义文件。自定义字段应该显示在jqery选项卡中。我已经在这里成功了:http://algodonesdentistreview.com/ahmad/dentists/a-test-dentist-post 但问题是,这些选项卡不是动态的,也就是说,如果我从仪表板添加字段,它将不会显示在页面中。相反,我每次都必须修改代码。这是我的代码:

        <ul>
            <li><a href="#tabs-1">Profile</a></li>
            <li><a href="#tabs-2">Staff</a></li>
            <li><a href="#tabs-3">Treatments & Prices</a></li>
        </ul>
        <div id="tabs-1"><?php the_field(\'Profile\'); ?></div>
        <div id="tabs-2"><?php the_field(\'Staff\'); ?></div>
        <div id="tabs-3"><?php the_field(\'treatments_&_prices\'); ?></div>
    </div>
现在,每次我必须添加一个新字段,我都需要回到我的单曲。php并为其添加html。我不想这样做。我只想添加自定义字段,并在不返回单个文件的情况下完成它。

我知道我做错了什么,但我不是一个程序员,所以找不到纠正的方法。任何帮助都将不胜感激。

顺便说一句,不知道这是否相关,但这篇文章也是一篇自定义文章。

我也在使用高级自定义贴子插件。

4 个回复
最合适的回答,由SO网友:jerclarke 整理而成

我认为答案是,没有简单的方法可以实现你想要的,因为没有人会想要这种行为。由于各种原因,自定义/元字段被添加到帖子中,插件一直在存储你永远不想让公众看到的东西,因为它可能是私有的,也可能是超级无聊和/或难以理解的。

自定义字段需要手动添加到主题中,原因是:只有您特别选择的字段才有意义。

请记住,您只需在设置站点时执行所有这些操作。网站上线后,您可能不会经常(或者至少不应该)向主题添加自定义字段。

也就是说,有一些方法可以通过编写一些PHP代码来减轻自己的负担,这些代码可以半自动化处理过程。如果您已经在PHP中定义了字段,那么这将特别有用,在这种情况下,您可以将metabox定义混合在一起(使用类似http://wordpress.org/extend/plugins/custom-metadata/ ) 以及要在选项卡中显示的字段列表。

例如,可以创建$fields_to_show_in_tabs, 使用所有不同选项卡的标签、postmeta名称和field\\u类型,您可以遍历该数组并使用自定义元数据管理器注册每个自定义字段。然后可以引用相同的数组(最好将其放在全局变量中:global $fields_to_show_in_tabs) 在你的主题中foreach ($fields_to_show_in_tabs) 在其中循环遍历数组并将每个数组显示为选项卡。

如果我有一个很长的字段列表,这些字段可能会发生很大变化,那么我会这么做。老实说,这可能有点过头了。如果我是你,我只会在开发期间更新主题,并告诉客户他们需要你的帮助来添加任何新选项卡。这是完全合理的,可以保护他们免受许多可能发生的噩梦的影响,因为他们创造了你从未想过的奇怪的新领域。

还有一件事:在您的示例中,无论Posteta是否存在,您都将显示选项卡和选项卡内容。这意味着如果没有填写内容,可能会有一个空选项卡。如果您不希望出现这种行为,您可能应该首先检查是否使用以下方法设置了Posteta:

<?php if (get_post_meta($post->ID, \'profile\', true)): ?>
     <li><a href="#tabs-1">Profile</a></li>
<?php endif;?>
div标记也是如此。这也是一个很好的论点,有利于创建一个函数来循环遍历字段数组并显示它们,这样您只需要一个HTML和PHP检查副本,它就可以为您处理各种字段。

SO网友:Adam

你可以试试这个;

<?php global $post; ?>
        <ul>
            <li><a href="#tabs-1">Profile</a></li>
            <li><a href="#tabs-2">Staff</a></li>
            <li><a href="#tabs-3">Treatments & Prices</a></li>
        </ul>
        <div id="tabs-1"><?php echo get_post_meta($post->ID, \'profile\', true);?></div>
        <div id="tabs-2"><?php echo get_post_meta($post->ID, \'staff\', true);?></div>
        <div id="tabs-3"><?php echo get_post_meta($post->ID, \'treatment_&_prices\', true);?></div>
    </div>
有关处理自定义字段的参考,请参阅:

get_post_meta @ WordPress Codex(或该URL底部注明的任何后续相关功能)。

SO网友:Wyck

我不知道那个插件,但是你想要什么,使用内置的wordpress并不难get_post_custom 作用

只需在其中循环并动态创建html选项卡。

   $custom_fields = get_post_custom($post_id);
      $my_custom_field = $custom_fields[\'my_custom_field\'];
      foreach ( $my_custom_field as $key => $value )
        echo `<div id="whatever">`. $key . " => " . $value . "</div>";
需要注意两件事:

您应该在回显每个ID字符串时创建一个自定义ID字符串<div id="whatever"> 所以它变成了<div id="whatever-1">, <div id="whatever-2">, 等

我在循环中这样做$div_id = $displayposts->current_post + 1;

-

如果需要在单独的div中使用标题(如示例中所示),只需使用rewind_postshttp://codex.wordpress.org/Function_Reference/rewind_posts

SO网友:Izumi kana

我知道有点晚了,一种方法是将包含帖子内容和所有字段的csv导出到列中,然后将它们组合到帖子内容中,但单独的字段具有自定义的选项卡标签和选项卡标题,然后尝试重新导入以查看其外观,这样您可以将字段保留在其他用途中,甚至在不再需要时忽略字段

结束

相关推荐

如何在自定义字段中实现jQuery-UI自动完成?

我目前有一个用于输入州名称的自定义字段。我想在这个字段中使用jquery ui的自动完成功能。然而,我失败了。这是我第一次使用jquery ui,我对php和jquery不太熟悉。我希望你们能给我一些建议。这是我使用的代码:(function ($){ $(document).ready(function() { var availableTags = [ \"ActionScript\", \"App