我创建了一个CTP,并且:当在循环中显示一个post ID(示例“112”)时,我还想添加一个前缀,如“CFX”,并将结果显示为字符串“CFX+IDnumber”(示例:CFX112),并将其用作bookcode、Book ID之类的搜索。
那么,我如何才能做到这一点并让搜索接受该字符串呢?
我创建了一个CTP,并且:当在循环中显示一个post ID(示例“112”)时,我还想添加一个前缀,如“CFX”,并将结果显示为字符串“CFX+IDnumber”(示例:CFX112),并将其用作bookcode、Book ID之类的搜索。
那么,我如何才能做到这一点并让搜索接受该字符串呢?
为什么不在帖子中添加一个自定义字段,这样在保存帖子时,就可以自动创建一个具有该值的自定义字段,然后就可以轻松地搜索该字段并在页面上显示。
function save_bookcode( $post_id ) {
// If this is just a revision, no need to save bookcode
if ( wp_is_post_revision( $post_id ) )
return;
// save a custom field \'bookcode\' with CFX+ID
add_post_meta( $post_id, \'bookcode\', \'CFX\' . $post_id, true ); // true on last param so that this field is unique and saved only the first time
}
add_action( \'save_post\', \'save_bookcode\' );
在本例中,bookcode是为任何帖子类型保存的,但您可以限制使用任何帖子类型。Book ID: <?php echo get_post_meta( get_the_ID(), \'bookcode\', true ); ?>
在搜索中包括Bookcode,要在正常搜索中包括该自定义字段,可以使用pre\\u get\\u posts过滤器:function add_bookcode_to_search( $query ) {
if ($query->is_search && !is_admin() ) {
$query->set( \'meta_query\', array(
array(
\'key\' => \'bookcode\',
\'value\' => $query->query_vars[\'s\'],
\'compare\' => \'LIKE\'
)
));
}
return $query;
}
add_filter( \'pre_get_posts\', \'add_bookcode_to_search\' );
但是,只有在标题/内容和元数据上都有图书代码时,才会返回结果。如果要将此自定义字段添加为另一个搜索位置,则需要手动更改SQL查询:https://adambalee.com/search-wordpress-by-custom-fields-without-a-plugin/或者你也可以使用一个已经完成这项工作的插件,比如Search Everything 或Relenvassi.
我可以通过评论ID获取评论元值。但如果我想检索单个帖子评论的评论元值,我应该怎么做?