-1
时向页面添加字母/数字我期待在Wordpress上为每个页面创建一些帖子元。这是关于分类的一点。每个顶级页面都会有一个字母,如A B C D等。顶级页面的每个子页面都会有一个数字,如01,02,03,04。我试图修改我的代码发布/更新/删除相应地添加/更新元,无论页面被删除或添加。我的问题是如何检查它是否是保存的顶级页面或子页面?代码看起来好像只使用代码的顶层部分,不管是否是父类,都会保存不同的字母。在发布/更新
function updateNumbers($post) {
global $wpdb;
$querystr = "SELECT $wpdb->posts.* FROM $wpdb->posts WHERE $wpdb->posts.post_status = 'publish' AND $wpdb->posts.post_type = 'page' ";
$pageposts = $wpdb->get_results($querystr, OBJECT);
if($post->post_parent > 0) {
//Child Page
$counts = 01;
if ($pageposts):
foreach ($pageposts as $post):
setup_postdata($post);
$counts++;
$parent_letter = get_post_meta($post->post_parent, 'incr_letter', true);
add_post_meta($post->ID, 'incr_number', $counts, true);
update_post_meta($post->ID, 'incr_number', $counts);
add_post_meta($post->ID, 'incr_letter', $parent_letter, true);
update_post_meta($post->ID, 'incr_letter', $parent_letter);
endforeach;
endif;
}else {
//Top Level Page
$counts = A;
if ($pageposts):
foreach ($pageposts as $post):
setup_postdata($post);
$counts++;
add_post_meta($post->ID, 'incr_letter', $counts, true);
update_post_meta($post->ID, 'incr_letter', $counts);
endforeach;
endif;
}
}
add_action ('publish_post', 'updateNumbers');
add_action ('deleted_post', 'updateNumbers');
add_action ('edit_post', 'updateNumbers');
所需的分层结构将类似于此:
- Page 1 - A.01
- Page 2 - B.01
-- Page 2 Child - B.02
-- Page 2 Child - B.03
-- Page 2 Child - B.04
- Page 3 - C.01
- Page 4 - D.01
以及你遍历所有帖子1周时后保存并根据该值更改所有帖子。 – David
@大卫,对,但由于某种原因,它不是确定和运行适当的功能,无论它是父母或子页面。所有网页只是得到一个sequintial字母,没有号码,没有层次 – Derek