gpt4 book ai didi

wordpress - 如何在function.php文件中获取当前的post_id

转载 作者:行者123 更新时间:2023-12-03 05:01:12 24 4
gpt4 key购买 nike

这是我在 function.php 文件中的函数

  function getcity(){
global $wpdb;

if($_POST['state'])
{
$id=$_POST['state'];
$district = get_post_meta(get_the_ID() , 'district', true);

var_dump($district);
$result=$wpdb->get_results("SELECT * FROM districts WHERE state_id='$id'");

foreach($result as $row) {
$district_name = $row-
>district_name;
$district_id = $row->district_id;

echo '<option value="'.$district_id.'">'.$district_name.'</option>';


}
}
}
add_action("wp_ajax_nopriv_getcity", "getcity");
add_action("wp_ajax_getcity", "getcity");

我想在此函数中获取当前帖子 ID 以显示所选的下拉值。

最佳答案

请注意,$postget_queried_object_id() 在第一个查询被触发之前不起作用。因此,这些选项仅在 template_redirect 及以后的钩子(Hook)处可用。但是functions.php 被包含得更早(在钩子(Hook)after_setup_theme之前),所以这不是一个解决方案。

一个几乎可以在任何地方工作的函数是:

$url = 'http://' . $_SERVER[ 'HTTP_HOST' ] . $_SERVER[ 'REQUEST_URI' ];
$current_post_id = url_to_postid( $url );

Here是对钩子(Hook)执行顺序的概述。

正如评论中提到的,url_to_postid 在某些设置中可能会很重,因此,如果您的代码在 template_redirect 之后执行,您最好使用以下解决方案之一,因为它们是最有效的可能比上面的代码片段快得多:

global $post;
$id = $post->id;

$id = get_queried_object_id();

关于wordpress - 如何在function.php文件中获取当前的post_id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25862495/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com