如何将下拉小工具/框添加到管理帖子页面?

时间:2013-04-19 作者:user1632018

我正在试图找出如何将下拉小部件添加到帖子页面。我问这个问题的原因是因为我希望能够有几个不同的帖子类,用户可以选择,同时制作一篇他们可以选择的帖子。

我想我可以使用post\\u类并定义几个不同的类,并允许用户将其用作post模板。

以前有没有人这样做过,能把我引向正确的方向?

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

因为这与post格式非常相似(请参见) 我会使用自定义分类法。

这使得控制访问级别变得很容易,并且无需编写额外代码即可获得元框。

enter image description here

然后用一个简单的过滤器插入新的post类。您的主题必须使用该函数post_class() – 当然

示例:

<?php # -*- coding: utf-8 -*-
/* Plugin Name: Post Class Taxonomy */

add_action( \'wp_loaded\', \'register_post_class_taxonomy\' );

function register_post_class_taxonomy()
{
    $caps = array(
        \'manage_terms\' => \'manage_options\',
        \'edit_terms\'   => \'manage_options\',
        \'delete_terms\' => \'manage_options\',
        \'assign_terms\' => \'edit_others_posts\',
    );

    $labels = array(
        \'name\'                       => \'Post Classes\',
        \'singular_name\'              => \'Post Class\',
        \'search_items\'               => \'Search Post Classes\',
        \'popular_items\'              => \'Popular Post Classes\',
        \'all_items\'                  => \'All Post Classes\',
        \'edit_item\'                  => \'Edit Post Class\',
        \'view_item\'                  => \'View Post Class\',
        \'update_item\'                => \'Update Post Class\',
        \'add_new_item\'               => \'Add New Post Class\',
        \'new_item_name\'              => \'New Post Class\',
        \'separate_items_with_commas\' => \'Separate Post Classes with commas\',
        \'add_or_remove_items\'        => \'Add or remove Post Classes\',
        \'choose_from_most_used\'      => \'Choose from the most used Post Classes\',
    );
    $args = array (
        \'rewrite\'           => FALSE,
        \'public\'            => FALSE,
        \'show_ui\'           => TRUE,
        \'labels\'            => $labels,
        \'capabilities\'      => $caps,
        \'show_in_nav_menus\' => FALSE,
    );
    register_taxonomy( \'post_classes\', \'post\', $args );
}

add_filter( \'post_class\', \'insert_custom_post_classes\' );

function insert_custom_post_classes( $classes, $class = \'\', $post_ID = NULL )
{
    NULL === $post_ID && $post_ID = get_the_ID();

    $post = get_post( $post_ID );

    if ( ! is_object_in_taxonomy( $post->post_type, \'post_classes\' ) )
        return $classes;

    if ( ! $post_classes = get_the_terms( $post_ID, \'post_classes\' ) )
        return $classes;

    foreach ( $post_classes as $post_class )
        if ( ! empty ( $post_class->slug ) )
            $classes[] = \'post-class-\' . esc_attr( $post_class->slug );

    return $classes;
}

SO网友:Vinod Dalvi

您可以使用meta box 要在管理帖子页面中添加框并使用post_class 筛选以在前端使用它。

结束