如何根据wordpress中的当前帖子自动选择一个值?

Posted

技术标签:

【中文标题】如何根据wordpress中的当前帖子自动选择一个值?【英文标题】:How to auto select a value according to current post in wordpress? 【发布时间】:2021-04-30 21:53:42 【问题描述】:

我正在尝试在single-services.php 页面上显示自动选择值,而服务是我的自定义帖子类型。在single-services.php 页面上,我有一个选择框,其中显示了由联系表单 7 插件创建的选项中的所有服务帖子标题。我想知道如何根据用户当前访问的服务帖子自动选择选项值。

这是我在functions.php的选择框中添加所有服务帖子的函数

function add_posttype_to_CF7 ( $tag, $unused ) 
    if ( $tag['name'] != 'services' )
          //continue only for the specific field - here we check by the name of the field
          return $tag;
    

    //get a list of all active services
    $services = get_posts(array(
        'post_type' => 'service',
        'post_status' => 'publish',
        'posts_per_page' => -1
    ));

    foreach ( $services as &$services ) 
        $tag['raw_values'][] = $services->post_title;
        $tag['values'][] = $services->post_title;
        $tag['labels'][] = $services->post_title;

    
    return $tag;


add_filter( 'wpcf7_form_tag', 'add_posttype_to_CF7', 10, 2);

【问题讨论】:

您是否在add_posttype_to_CF7 函数中尝试过get_queried_object()?通过这种方式,您可以获得所需的信息,从而自己处理所选值。我不确定您是否可以从 wpcf7_form_tag 声明所选值,但如果可以,也许 get_queried_object() 可以提供帮助。 或者,您可以编写一些 javascript 代码,例如:<script type="text/javascript">let select = document.querySelector('select.services_field'); select && select.val = '<?php $queried_object = get_queried_object(); echo $queried_object->ID; ?>'</script> @KodeFor.Me 感谢您的回答是的,我得到了get_queried_object() 的当前帖子,但我解决了我的问题。无论如何,再次感谢。 【参考方案1】:

我用 JQuery 解决了我的问题。

<script>
jQuery(document).ready( function($) 
    var h1Text = "<?php echo $service_title ?>";
    jQuery('#service_id[name="services"]').find('option[value="'+h1Text+'"]').prop("selected",true); 
);</script>

【讨论】:

以上是关于如何根据wordpress中的当前帖子自动选择一个值?的主要内容,如果未能解决你的问题,请参考以下文章

根据 Wordpress 中的自定义字段值批量重写帖子 slug

如何在MySQL中加入查询以根据距离计算和Google地理编码查找WordPress帖子?

如何使用 javascript 在 wordpress 中自动选择一个类别?

根据 phpmyadmin 中的类别 ID 获取 wordpress 帖子 ID 列表

WordPress 根据分类术语显示相关帖子

Wordpress - 与帖子相关的类别列表