gpt4 book ai didi

wordpress - WordPress 3.0.1 中的自定义帖子类型和分类永久链接重写

转载 作者:行者123 更新时间:2023-12-02 02:30:52 26 4
gpt4 key购买 nike

我有一个“故事”自定义帖子类型和“艺术家”、作家“分类法”。
我需要在functions.php中为永久链接设置重写规则,如下所示:

艺术家(分类/类别):
http://www.example.com/isaac-deutscher
(/%艺术家%)

作家(分类/类别):
http://www.example.com/jean-paul-sartre
(/%作家%)

故事(自定义帖子类型):
http://www.example.com/issac-deutscher/jean-paul-sartre/the-cat-is-under-the-table
(/%艺术家%/%作家%/%故事%)

我尝试了一些我在博客中找到的代码但没有成功,并且无法弄清楚如何解决这个问题。
我在 Wordpress 3.0.1 中工作

最佳答案

这对 Story 和 Artist 有效,但对 Writer 无效:

add_action('init', 'custom_init');
add_filter('post_type_link', 'story_permalink', 10, 3);

function custom_init(){
$story = array(
'query_var' => true,
'rewrite' => false,
);
$artist = array(
'query_var' => true,
'rewrite' => true
);
$writer = array(
'query_var' => true,
'rewrite' => true
);

register_post_type('story', $story);
register_taxonomy('artist', 'story', $artist);
register_taxonomy('writer', 'story', $writer);

global $wp_rewrite;
$story_structure = '/%artist%/%writer%/%story%';
$wp_rewrite->add_rewrite_tag("%story%", '([^/]+)', "story=");
$wp_rewrite->add_permastruct('story', $story_structure, false);
}

function story_permalink($permalink, $post_id, $leavename){
$post = get_post($post_id);

$rewritecode = array(
'%artist%',
'%writer%',
$leavename? '' : '%postname%',
$leavename? '' : '%pagename%',
);

if('' != $permalink && !in_array($post->post_status, array('draft', 'pending', 'auto-draft'))){

if (strpos($permalink, '%artist%') !== FALSE){
$terms = wp_get_object_terms($post->ID, 'artist');
if (!is_wp_error($terms) && !empty($terms) && is_object($terms[0])) $artist = $terms[0]->slug;
else $artist = 'unassigned-artist';
}

if (strpos($permalink, '%writer%') !== FALSE){
$terms = wp_get_object_terms($post->ID, 'writer');
if (!is_wp_error($terms) && !empty($terms) && is_object($terms[0])) $writer = $terms[0]->slug;
else $writer = 'unassigned-writer';
}

$rewritereplace = array(
$artist,
$writer,
$post->post_name,
$post->post_name,
);
$permalink = str_replace($rewritecode, $rewritereplace, $permalink);
}
else{
}
return $permalink;
}

希望能帮助到你。

关于wordpress - WordPress 3.0.1 中的自定义帖子类型和分类永久链接重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3851315/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com