好的,我一直在寻找一种简单的方法来为我的客户实现这一点。?
这是我想要完成的事情: http://www.trails2000.org/site/trail_conditions.html
不知道该怎么办?我可以轻松地制作一张桌子并让它们更新..?
或者我正在关注GD Star评级和做多套?但也不确定..
我忽略了什么?
谢谢!
答案 0 :(得分:3)
手动编码最适合此类情况,因此您可以更好地控制所需的功能。
并考虑使用帖子类型
来构建它 http://codex.wordpress.org/Post_Types
要了解有关自定义帖子类型的详情,请查看此幻灯片
http://www.slideshare.net/williamsba/custom-post-types-and-taxonomies-in-wordpress
答案 1 :(得分:2)
请勿手动执行(我通过'手动'收集,您指的是硬编码,或让用户通过WYSIWYG编辑器编辑表?)。
正如大家所说,做到定制。您需要使用自定义帖子类型,自定义分类和自定义字段。
如果你使用插件,你应该寻找一个管理自定义帖子类型,自定义分类和自定义字段的插件,例如:http://magicfields.org/
话虽如此,在没有插件的情况下对其进行手工编码并不是很难,并且应该让您更好地理解它们如何组合在一起。
'Trail'应该是自定义帖子类型。 “Trail”帖子类型应该有一个自定义分类“Trail System”,它将包含“Colorado Trail System”,“Fort Lewis Trail System”等。“Trail”帖子类型应该包含“条件”的自定义字段,以及可能'评论'。虽然“评论”可以存储在帖子正文中。
客户可以通过Wordpress管理界面添加“Trails”和“Trail Systems”来更新网站,类似于他们添加“帖子”和“类别”的方式。
有意义吗?
编辑:下面介绍如何使用原始代码(即无插件)设置上述内容
下面是一些示例代码,应该在functions.php中。一旦此代码在functions.php中,“Trails”应出现在“posts”中的admin interace中。 'Trail Systems'应出现在'Trails'的下拉菜单中,就像'Posts'的'Categories'一样。当你添加一个新的'Trail'时,下面应该有'comments'和'condition'的自定义字段。
<?php
// CREATE YOUR CUSTOM POST TYPE
add_action( 'init', 'create_custom_post_type_trail');
function create_custom_post_type_trail() {
// Set all the labels for your custom post type, as they will appear in the wordpress admin interface.
$labels = array(
'name' => _x( 'Trails', 'trail' ),
'singular_name' => _x( 'Trail', 'trail' ),
'add_new' => _x( 'Add New', 'trail' ),
'add_new_item' => _x( 'Add New Trail', 'trail' ),
'edit_item' => _x( 'Edit Trail', 'trail' ),
'new_item' => _x( 'New Trail', 'trail' ),
'view_item' => _x( 'View Trail', 'trail' ),
'search_items' => _x( 'Search Trails', 'trail' ),
'not_found' => _x( 'No Trails found', 'trail' ),
'not_found_in_trash' => _x( 'No Trails found in Trash', 'trail' ),
'parent_item_colon' => _x( 'Parent Trail:', 'trail' ),
'menu_name' => _x( 'Trails', 'trail' ),
);
// Set all the options for your custom post type - you may need to change some of these
$args = array(
'labels' => $labels,
'hierarchical' => false,
'supports' => array( 'title', 'editor', 'custom-fields' ),
'taxonomies' => array(),
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_position' => 5,
'show_in_nav_menus' => true,
'publicly_queryable' => true,
'exclude_from_search' => false,
'has_archive' => true,
'query_var' => true,
'can_export' => true,
'rewrite' => array('slug' => 'trails', 'with_front' => false),
'capability_type' => 'post'
);
register_post_type( 'trail', $args );
}
// ADD CUSTOM FIELDS TO THE TRAIL CUSTOM POST TYPE
add_action('wp_insert_post', 'add_custom_trail_fields');
function add_custom_trail_fields($post_id) {
if ( isset($_GET['post_type']) and $_GET['post_type'] == 'trail' ) {
add_post_meta($post_id, 'condition', '', true);
add_post_meta($post_id, 'comments', '', true);
}
return true;
}
// ADD CUSTOM TAXONOMY TO THE TRAIL CUSTOM POST TYPE
add_action( 'init', 'create_trail_taxonomies' );
function create_trail_taxonomies(){
// Set all the labels for your custom taxonomy, as they will appear in the wordpress admin interface.
$labels = array(
'name' => _x( 'Trail Systems', 'taxonomy general name' ),
'singular_name' => _x( 'Trail System', 'taxonomy singular name' ),
'search_items' => __( 'Search Member Categories' ),
'all_items' => __( 'All Member Categories' ),
'parent_item' => __( 'Parent Trail System' ),
'parent_item_colon' => __( 'Parent Trail System:' ),
'edit_item' => __( 'Edit Trail System' ),
'update_item' => __( 'Update Trail System' ),
'add_new_item' => __( 'Add New Trail System' ),
'new_item_name' => __( 'New Trail System Name' ),
'menu_name' => __( 'Trail System' ),
);
// Set all the options for your custom taxonomy - you may need to change some of these
$args = array(
'labels' => $labels,
'label'=>'Trail Systems',
'hierarchical'=>true, // this makes them behave like 'categories' as opposed to like 'tags'
'rewrite' => array('slug' => 'trail_system', 'with_front' => false),
);
register_taxonomy('trail_system', 'trail', $args);
}
/*
// This is for if you make a mistake, and have to unregister a taxonomy and register it with a new name
add_action( 'init', 'unregister_taxonomy');
function unregister_taxonomy(){
global $wp_taxonomies;
$taxonomy = 'XXXXXXXXX'; // name of your taxonomy goes here.
if ( taxonomy_exists( $taxonomy))
unset( $wp_taxonomies[$taxonomy]);
}
*/
?>
您可能会觉得有用的其他一些内容:
您可以使用http://www.example.com/?post_type=trail或http://www.example.com/trail或类似网址访问自己的路径,具体取决于您的永久链接的设置方式。
在您的主题中,您可以创建文件archive-trail.php和single-trail.php,以便为存档/单个“Trail”帖子制作自定义模板。
在The Loop中,您可以访问自定义帖子字段,如下所示:
<?php
$fields = get_post_meta( get_the_ID()); // get all custom fields
echo $fields['comments'][0]; // display 'comments' field
echo $fields['condition'][0]; // display 'condition' field
?>
再次在The Loop中,获取这样的自定义分类:
<?php
$trail_system = get_the_terms( $post->ID, 'trail_system');
echo $trail_system;
?>
最后,我不知道您是否需要对搜索Trails执行任何操作,但如果是,请查看以下内容:http://thereforei.am/2011/10/28/advanced-taxonomy-queries-with-pretty-urls/
答案 2 :(得分:1)
根据我的经验,定制要好得多 - 提供更多灵活性。很多时候,我使用插件时发生了这种情况,因为最初它节省了我一些时间,然后70%进入项目我不得不做一些小修改,最终浪费了更多的时间来弄清楚如何以及在哪里制作那些我本可以自己编码的变化。
答案 3 :(得分:0)
您可以创建一个管理页面,专门为每个路径保存变量(“好”“坏”或其他),允许编辑或以上的用户更新它。我认为这里的定制解决方案肯定是最好的。
如果你登录http://myego.org,然后转到“我的EGO”页面,你会看到那种管理页面(虽然你的是所有下拉菜单,而这个是所有字段)。 / p>