(WP) 将帖子标题保存为可以过滤的元(复选框、下拉菜单)

问题描述 投票:0回答:1

英语蹩脚的简单愚蠢问题。 我需要以可以过滤的方式将帖子标题保存/更新为元字段(通过 Jetsmatrfilter 或其他过滤器)

我有一些自定义帖子,其中包含使用 JetEngine 构建的文本、文本区域、复选框和收音机(但与 acf 兼容)。

现在我正在尝试为这个自定义帖子构建一些视觉过滤器。问题是过滤器(下拉菜单)仅适用于通过复选框、单选或选择字段添加的值。

我添加了一个脚本,将帖子标题保存为帖子元,但它是一个文本字段,因此过滤器不起作用。

function wpse_275785_save_title_as_meta( $post_id, $post, $update ) {
    update_post_meta( $post_id, 'post_title', $post->post_title );
}
add_action( 'save_post', 'wpse_275785_save_title_as_meta', 99, 3 );

有没有办法将帖子标题自动保存为选中的单选按钮或复选框?如果我也更新帖子,这是一种有效的方法。

还有另一种方法可以将帖子标题保存为可以过滤的字段吗?

php wordpress advanced-custom-fields jet-engine
1个回答
0
投票

问题在于数据类型:文本字段通常无法像复选框、单选框或选择字段那样进行过滤。

这是一个 PHP 函数,它将帖子标题保存在序列化数组中,模仿复选框的行为:

function wpse_275785_save_title_as_meta( $post_id, $post, $update ) {
    // Mimic checkbox data structure
    $checkbox_data = array(
        '0' => $post->post_title
    );
    
    // Serialize the array for storage
    $serialized_data = maybe_serialize($checkbox_data);
    
    // Update the post meta
    update_post_meta( $post_id, 'post_title_checkbox', $serialized_data );
}

add_action( 'save_post', 'wpse_275785_save_title_as_meta', 99, 3 );

post_title_checkbox
更改为您计划使用的实际元键,并确保将您的过滤器配置为指向这个新的元键。

© www.soinside.com 2019 - 2024. All rights reserved.