Get $post->ID from a URL

时间:2015-05-09 作者:JediTricks007

我有一个自定义的帖子类型,叫做music. 我创建了一个自定义模板作为普通页面,以显示音乐家的一些统计信息。我有一个页面,他们可以看到他们所有的歌曲,并添加了一个统计链接。stats链接根据该自定义帖子自动生成URL。

示例URL如下所示https://domain.com/song-stats/?pid=17643

URL中的17643用于自定义音乐帖子类型中的特定歌曲。以下代码在此模板页面上运行良好。

<?php $key_1_values = get_post_meta(17643, \'_song_name\', true ); ?>
您的歌曲名为<?php echo $key_1_values ?>.

我正在尝试动态地将17643生成为URL中的任何数字。我该怎么做?

3 个回复
SO网友:Egle Kreivyte

我知道这是个老问题,但也许这会有帮助

url_to_postid( string $url )

WP Code reference

SO网友:Pim

我想你要找的是get_queried_object() 功能。您只需获取id即可:

$post_id = $get_queried_object_id;

$post_id = get_the_id();
或者你的意思是$_GET[\'pid\'] ?

SO网友:Eduardo Sánchez Hidalgo Urías

我不知道我是否正确理解了这个问题,但如果我理解了,我认为这可以帮助您:

这还没有经过测试,假设音乐帖子的url总是相同的格式,并且代码放在音乐帖子模板的某个地方。

<?php
     $url = get_post_permalink(); //Get the url of the current post
     $substring_start_pos = strpos($url, \'pid=\') + 4; //Find the position in $url string where the url number starts
     $url_number = substr($url, $substring_start_pos); //Extract the substring form the start position to the end of the url string
     $key_1_values = get_post_meta($url_number, \'_song_name\', true );
     echo "Your song is called $key_1_values"; 
?>

结束

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在