WordPress特定分类最新文章ID获取及ACF字段调用短码需求
解决方案
直接按以下步骤操作,全程无需手动修改主题文件:
1. 添加自定义短码代码
打开WordPress后台,找到Code Snippets插件,点击「添加新片段」:
- 标题填「获取wmp分类最新文章的mvs字段」
- 代码框粘贴以下内容:
function get_latest_wmp_mvs_field() { // 查询分类ID=14(wmp分类)下的最新已发布文章,仅取1篇 $latest_post = get_posts(array( 'category' => 14, 'numberposts' => 1, 'post_status' => 'publish', 'orderby' => 'date', 'order' => 'DESC' )); if ($latest_post) { $latest_post_id = $latest_post[0]->ID; $mvs_value = get_field('mvs', $latest_post_id); return $mvs_value ? $mvs_value : '暂无内容'; } else { return 'wmp分类下暂无已发布文章'; } } // 注册短码,前端直接调用[latest_wmp_mvs] add_shortcode('latest_wmp_mvs', 'get_latest_wmp_mvs_field');
- 点击「保存并激活」
2. 前端调用
在你需要展示内容的文章、页面或小工具中,直接插入短码:
[latest_wmp_mvs]
发布后就能自动显示wmp分类下最新文章的mvs字段值,每次发布该分类新文章时,内容会自动更新。
为什么之前的方法无效?
你尝试的[acf field="mvs" post_id=$post_id]无法生效,是因为短码不支持直接使用PHP变量$post_id——动态获取文章ID的逻辑必须封装在PHP函数里,通过自定义短码来解析执行。
内容的提问来源于stack exchange,提问作者Stefan_S
相关产品推荐
相关产品推荐

