Wordpress previous_post_link() 和 next_post_link() 不适用于 CPT
Wordpress previous_post_link() and next_post_link() don't work at CPT
各位!
Wordpress 的 CPT 和 ACF 有问题。
我的 CPT“投资组合”post 中有 ACF 字段('previouspost' 和 'nextpost)。我需要每个 post 来获取指向 ACF 字段的上一个和下一个 post 链接。我使用的代码没有任何作用,字段为空,没有错误和警告
function update_portolio_metadata(){
$args = array(
'post_type' => 'portfolio', // Only get the posts
'post_status' => 'publish', // Only the posts that are published
'posts_per_page' => -1 // Get every post
);
$posts = get_posts($args);
foreach ( $posts as $post ) {
$previouslink = previous_post_link();
$nextlink = next_post_link();
update_post_meta( $post->ID, 'previouspost', $previouslink);
update_post_meta( $post->ID, 'nextpost', $nextlink);
}
}
add_action('init','update_portolio_metadata');
更新、检查和工作
function update_portolio_metadata(){
$args = array(
'post_type' => 'portfolio', // Only get the posts
'post_status' => 'publish', // Only the posts that are published
'posts_per_page' => -1 // Get every post
);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
$previouslink = get_permalink(get_adjacent_post(false,'',false));
$nextlink = get_permalink(get_adjacent_post(false,'',true));
update_post_meta( get_the_ID(), 'previouspost', $previouslink);
update_post_meta( get_the_ID(), 'nextpost', $nextlink);
endwhile;
}
add_action('init','update_portolio_metadata');
有些函数只能在循环中工作。您可以使用 wp_query 而不是 get_posts。
你的代码应该是这样的:
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
$previouslink = get_previous_post_link();
$nextlink = get_next_post_link();
update_post_meta( get_the_ID(), 'previouspost', $previouslink);
update_post_meta( get_the_ID(), 'nextpost', $nextlink);
endwhile;
}
各位!
Wordpress 的 CPT 和 ACF 有问题。
我的 CPT“投资组合”post 中有 ACF 字段('previouspost' 和 'nextpost)。我需要每个 post 来获取指向 ACF 字段的上一个和下一个 post 链接。我使用的代码没有任何作用,字段为空,没有错误和警告
function update_portolio_metadata(){
$args = array(
'post_type' => 'portfolio', // Only get the posts
'post_status' => 'publish', // Only the posts that are published
'posts_per_page' => -1 // Get every post
);
$posts = get_posts($args);
foreach ( $posts as $post ) {
$previouslink = previous_post_link();
$nextlink = next_post_link();
update_post_meta( $post->ID, 'previouspost', $previouslink);
update_post_meta( $post->ID, 'nextpost', $nextlink);
}
}
add_action('init','update_portolio_metadata');
更新、检查和工作
function update_portolio_metadata(){
$args = array(
'post_type' => 'portfolio', // Only get the posts
'post_status' => 'publish', // Only the posts that are published
'posts_per_page' => -1 // Get every post
);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
$previouslink = get_permalink(get_adjacent_post(false,'',false));
$nextlink = get_permalink(get_adjacent_post(false,'',true));
update_post_meta( get_the_ID(), 'previouspost', $previouslink);
update_post_meta( get_the_ID(), 'nextpost', $nextlink);
endwhile;
}
add_action('init','update_portolio_metadata');
有些函数只能在循环中工作。您可以使用 wp_query 而不是 get_posts。
你的代码应该是这样的:
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
$previouslink = get_previous_post_link();
$nextlink = get_next_post_link();
update_post_meta( get_the_ID(), 'previouspost', $previouslink);
update_post_meta( get_the_ID(), 'nextpost', $nextlink);
endwhile;
}