如何在WordPress仪表板中编辑存档页面的内容?

时间:2016-08-13 作者:Grant_E

所以基本上,我有一个页面,它是一个定制的归档文件,显示了上面的帖子列表。唯一的问题是,客户端希望能够编辑实际的归档页面内容本身(图像和标题),而不仅仅是帖子的内容。所有这一切都需要能够在仪表板内部完成,以便客户端能够轻松完成。是否有任何方法可以使存档页的自定义模板显示在“页面”选项卡中?还是可以通过DASBCADGE进行编辑?谢谢

4 个回复
SO网友:admcfajn

使其成为一种分类法,并允许客户编辑术语标题&;描述是我会考虑的一个选项。

主题可能使用或不使用自定义模板文件来控制cpt存档的前端。

使用页面模板是不明智的,因为在同一url加载帖子类型和页面可能会出现问题。

使用主题选项将是一个好方法。将主题选项与用于post类型存档的自定义存档模板结合使用可以做到这一点。

有关如何创建主题选项,请参见以下示例:https://codex.wordpress.org/Creating_Options_Pages#Example_.232

&;对于自定义页面模板,您已经介绍了以下内容:https://developer.wordpress.org/themes/basics/template-hierarchy/#visual-overview

SO网友:Tony Djukic

根据设置,有多种方法可以处理此问题。我假设最有可能的情况是您使用的是第三方主题,这意味着您不能自己编辑任何主题文件(您绝对不应该这样做,因为更新会删除您的更改)。这限制了您的选择,正如其他答案所建议的那样,最简单的方法是在仪表板的“帖子”菜单下填充类别内容。有一些插件可以让您添加更多内容,如特色图片:Category Featured Image

您还可以构建自己的插件,以便更好地控制要添加到类别中的内容。下面是我用来向自定义分类法添加颜色选择器和复选框选项的一段代码。当然,您可以将其应用于现有的分类法。

function yourplugin_taxonomy_custom_fields( $tag ) {
    $t_id = $tag->term_id;
    $term_meta = get_option( \'taxonomy_term_\'.$t_id );
    $level_public = $term_meta[\'level_public\'];
    if ( $level_public == \'true\' ) {
        $checked = \' checked="checked"\';
    } else {
        $checked = \'\';
    }
?>
<tr class="form-field">
    <th scope="row" valign="top">
        <label for="level_colour"><?php _e(\'Player Level Colour\'); ?></label>
    </th>
    <td>
        <input type="text" name="term_meta[level_colour]" id="term_meta[level_colour]" class="ifs-pp-colour-picker" value="<?php echo $term_meta[\'level_colour\'] ? $term_meta[\'level_colour\'] : \'\'; ?>">
        <p class="description"><?php _e(\'Select the label colour for this Player Level.\'); ?></p>
        <script type="text/javascript">
            jQuery( document ).ready( function( $ ) {
                $( \'.ifs-pp-colour-picker\' ).wpColorPicker();
            } );
        </script>
    </td>
</tr>
<tr class="form-field">
    <th scope="row" valign="top">
        <label for="level_public"><?php _e(\'Player Level Visibility\'); ?></label>
    </th>
    <td>
        <input type="checkbox" name="term_meta[level_public]" id="term_meta[level_public]" value="true"<?php echo $checked; ?>>Level is Visible to users when viewing frontend Player Profiles.
        <p class="description"><?php _e(\'Please indicate if this Player Level should be visible on the player profile page or not. This is useful for providing context for some of the ratings or not.  It may be helpful, in some instances, for users to understand that the ratings a player has recieved are relative to their category or level of play.\'); ?></p>
    </td>
</tr>
<?php }
add_action( \'yourplugin_player_levels_edit_form_fields\', \'yourplugin_taxonomy_custom_fields\', 10, 2 );

function save_yourplugin_custom_fields( $term_id ) {
    if ( isset( $_POST[\'term_meta\'] ) ) {
        $t_id = $term_id;
        $term_meta = get_option( \'taxonomy_term_\'.$t_id );
        $cat_keys = array_keys( $_POST[\'term_meta\'] );
        foreach ( $cat_keys as $key ){
            if ( isset( $_POST[\'term_meta\'][$key] ) ){
                $term_meta[$key] = $_POST[\'term_meta\'][$key];
            }
        }
        update_option( \'taxonomy_term_\'.$t_id, $term_meta );
    } else {
        delete_option( \'taxonomy_term_\'.$t_id, $term_meta );
    }
}
add_action( \'edited_yourplugin_player_levels\', \'save_yourplugin_custom_fields\', 10, 2 );
如果你想添加颜色选择器,你必须做适当的脚本包含,等等(This should cover the process.)

请注意,使用此选项,您仍然需要能够编辑存档cpt。php文件,以便您可以利用刚刚添加的这些新选项。根据您使用的主题,您可以自己编辑它,或者您的第三方主题有一些插件可以利用的挂钩。

然而,如果您使用的是自定义子主题或自定义主题,那么您实际上具有更大的灵活性,可以设置归档模板,然后您可以控制输入到其中的内容。您可以通过添加@admcfajn的答案中包含的主题选项来操纵内容,也可以使用我上面介绍的类别选项。

SO网友:lucian

当然可以做到。对于分类法(类别、标签、任何自定义税-我想这就是你想要的)很简单,它们在仪表板中都有自己的页面-请参见“帖子->类别/标签->编辑类别”下的内容。有一个名为description的自定义字段,但您可以通过函数添加更多内容(照片等)。php或一些插件。当然,您必须首先自己编辑模板,以便它们获取所需字段的内容。

SO网友:jkhntr

在您的存档中—cpt。php文件请确保为其指定模板名称

 //Template Name: Archive Template Your CTP 
然后,在创建新页面时,存档模板将在页面属性>模板下拉列表中可用

相关推荐

来自[JOB_Dashboard]页面的WP作业管理器要素作业

我正在使用WP Job Manager 插件。我想在[job\\u dashboard]页面上创建一个链接,允许用户对自己的工作进行特色化。我已将此代码添加到作业仪表板。php:echo \'<li><a href=\"\' . update_post_meta( $job->ID, \'_featured\', 1 ) . \'\">Featured</a></li>\'; 但这是我所有的工作,而不是我点击链接的那个。我怎样才能使我点击的那