将帖子/页面ID添加到插入的链接(_CONTENT)

时间:2016-05-03 作者:Glen

在帖子和页面的主内容编辑器中,我们可以插入指向其他帖子/页面的多个链接:

<a href="http://example.com/hello-world/">Hello World</a>
我想做的是让Wordpress自动将Hello World帖子的ID添加到链接中。为了尝试并清楚地解释我想要什么,假设我正在写一篇新的博文,并且在新博文中添加了一个链接,链接到我现有的Hello World博文。

<a id="4" href="http://example.com/hello-world/">Hello World</a>
在上面的示例中,我们的Hello World帖子的ID为4。我一直在学习this answer 这是一个不同的问题,但我还没有完全弄清楚如何获取我链接到的帖子/页面的ID并将其添加到锚元素。如果我们有多个指向同一帖子/页面的链接,那么使用rel属性可能更安全:

<a href="http://example.com/hello-world/" rel="4">Hello World</a>

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

这是我在@bravokeyl的指针下得出的解决方案

所以说清楚点it does not add the ID\'s to links 但是通过使用link slug,我可以获得ID,这是我所需要的解决方案。我使用JS将URL传递到此函数中,然后将其剥离为仅在中使用的slugget_page_by_path 然后返回该帖子的ID。

这是我正在努力构建一个基于Ajax的主题的一部分。这种方法还解决了具有相同ID的多个链接的问题。


function local_post_init() {
  /** Get post ID from slug **/
  $page_slug = $_POST[\'id\'];
  $page_data = get_page_by_path(basename( untrailingslashit( $page_slug ) ) , OBJECT, \'post\');
  $page_id = $page_data->ID;
  /** $page_id holds our ID which we then use in our query */
  $args = array( \'p\' => $page_id );
  $theme_query = new \\WP_Query( $args );
  post_template($theme_query);
}

相关推荐

Apply_Filters()对所需的参数进行切片

我正在尝试向WooCommerce订单中的每个退款行添加一个按钮(其功能超出了这个问题的范围,足以说明它需要退款id作为参数)。我发现这些行是在woocommerce\\includes\\admin\\meta Box\\views\\html订单退款中创建的。无法重写的php。然而,有一项行动:do_action( \'woocommerce_admin_order_item_values\', null, $refund, $refund->get_id() ); 这似乎非常适合我的