在CPT档案列表上方显示可编辑文本

时间:2012-04-23 作者:mrwweb

我有两种自定义帖子类型(作者和合作伙伴)。我在主导航中显示他们的归档页面,并使用归档作者。php和归档合作伙伴。php对每个页面中的帖子显示进行了一些小调整。

现在,我的客户希望在存档的帖子列表之前显示一些文本。到目前为止,我可以想到以下方法:

将文本另存为帖子类型的描述并显示WP_Query() 仅循环归档上方的页面(按ID)WP_Query() 为每个CPT生成CPT归档,并设置可在静态可编辑页面上使用的“作者归档”和“合作伙伴归档”模板

它们需要技术知识才能更新(#1,#2)

  • 它不是抽象的(例如,解决方案必须为每个存档自定义编码)(#2,#3)
  • 更新文本需要技术知识(#1)
  • 解决方案基本上重复了模板层次结构(#3)我正在为客户寻找一种对WordPress友好、抽象且易于更新的解决方案。

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

    实现这一点的最简单(尽管不是唯一)方法之一是在WP仪表板中创建一个自定义选项面板,该面板允许您的客户创建和更新信息,这些信息可以通过模板文件使用,而无需任何技术知识。

    您可以将以下内容直接粘贴到函数中。php文件,或者您可以将其保存在文件(即配置菜单)中。php(在主题目录中),然后将其包含到函数中。php文件-无论代码如何,您都可以选择;

    // create config menu in dashboard
    add_action(\'admin_menu\', \'config_menu\');
    
    function config_menu() {
    
        //create a menu in the dashboard
        add_menu_page(\'Website Custom Settings\',
                      \'Configure Site\', 
                      \'administrator\',
                      __FILE__,
                      \'custom_settings_page\',
                      \'\'.get_bloginfo(\'template_directory\').\'/images/your_icon.png\', 4);
    
    }
    
    //register settings
    add_action( \'admin_init\', \'register_settings\' );
    
    function register_settings() {
    
        register_setting(   \'my-settings-group\', \'partners\');
        register_setting(   \'my-settings-group\', \'authors\');
    }
    
    function my_settings_page() {
    ?>
    
    <div class="wrap">
    
        <form method="post" action="options.php">
    
        <?php settings_fields(\'my-settings-group\'); ?>
    
        Enter your Partner description here <br/>
        <textarea  name="partners"><?php echo get_option(\'partners\');?></textarea>
    
        <br />
    
        Enter your Author description here <br/>
        <textarea  name="authors"><?php echo get_option(\'authors\');?></textarea>
        <input type="submit" class="button-primary" value="<?php _e(\'Save Changes\') ?>" />
    
        </form>
    
    </div>
    
    <?php } ?>
    
    然后在每个帖子类型的存档模板文件中,您可以执行以下操作:;

    <?php echo wpautop(get_option(\'partners\');?>
    
    and
    
    <?php echo wpautop(get_option(\'authorss\');?>
    
    这会将相应的值(输入的文本)调用到您在客户端仪表板区域中创建的textarea字段中。

    注意:上面的示例代码非常简单,经过精简后可以为您提供一个基本示例。没有提供CSS样式,我将留给你。但这将完成工作。

    SO网友:mrwweb

    现在有一个插件CPT Descriptions 就是这样。

    自v0起。插件有很多错误(编辑器无法保存描述),但大部分内容都在GitHub repository version of the plugin 您可以在one existing fork 和pull请求。希望这些将被集成到WordPress repo版本的插件中,但目前它们正在GitHub上进行测试。

    要使用该插件,只需安装它,为所需的每种帖子类型填写“描述”字段,然后在存档页面上输出描述,其中包括:

    the_post_type_description();
    
    或通过以下方式获取特定帖子类型的描述:

    the_post_type_description(\'my_post_type\');
    
    或使用以下命令将其保存到变量:

    $description = get_post_type_description();
    

    结束

    相关推荐

    显示Archives.php中的所有自定义帖子类型

    我该怎么做?archive.php 只有以下内容:wp_get_archives(\'type=monthly\'); 以及wp_get_archives() 没有显示所有帖子类型的参数。我也认为archive-[post_type].php 不是我要找的,因为我希望所有帖子类型都显示在一个归档页面中。谢谢W