Get post ID from a link

时间:2014-11-14 作者:thundertrax

我会尽力解释我的问题。请看我的website.

我们有:

主页内有一个“查看报价”按钮,“查看报价”按钮链接到帖子

  • 帖子有一个截止日期(通过插件完成)
  • 在“查看报价”按钮下面有一个“有效期至”字段,我试图实现以下目标:

    我想自动获取链接后面的帖子ID,使用帖子ID获取帖子的过期日期,然后将其自动显示在“有效期”字段旁边。我已经可以做到这一点,但我想更自动化一点。以下是我目前使用的代码:

    <?php 
    $postid = 4407;
    $date_format = __( \'d / m / Y\' );
    $expiration_date = get_post_meta( $postid, \'_expiration_date\', true);
    if (get_post_status($postid)==\'publish\')
    echo date_i18n( $date_format, strtotime( $expiration_date ) ); 
    ?>
    
    我对上述代码的问题是,它只有在我已经知道帖子ID号的情况下才有效,因为我有许多页面和帖子,所以我必须为每个页面和帖子创建不同的代码。我想创建一个可以应用于我所有页面的代码。所以基本上,我想根据“查看报价”按钮后面的链接自动获取帖子ID。

    至于我是如何使用PHP的,我有一个插件,它允许我创建PHP代码片段,然后在我喜欢的任何地方使用它们作为短代码。因此,我在“valid until”字段旁边有一个上面PHP代码的短代码。

    我不确定这是否可行,或者我的方法是否一开始就错了,但我们非常感谢您的帮助。

    你好,查里斯

  • 1 个回复
    最合适的回答,由SO网友:birgire 整理而成

    我想你不是在寻找当前的帖子/页面ID,而是在试图从你的网站上找到某个url的ID。

    那你应该试试手边的url_to_postid() WordPress核心功能。

    如果存在,则返回帖子/页面ID,否则返回0.

    Example:

    echo url_to_postid( \'http://example.com/2014/11/14/hello-world\' );
    
    // Outputs the post ID as 1 in this example.
    

    Update:

    <回复评论:您可以创建一个自定义字段,名为。url_offer, 从后端

    Example for a custom field

    和使用:

    $url_offer = get_post_meta( get_the_ID() , \'url_offer\', true );
    
    在前端检索它。

    结束

    相关推荐

    is_page Funtion for Posts ?

    我正在使用插件Bottom of every post有一个函数if( !is_page( ) && file_exists( $fileName )){在每个页面的底部打印自定义文本,我想在pages not on the posts, 有人能给我建议一个功能或方法来完成这项工作吗?任何建议都是可以接受的。