Adicione ID do post / page aos links inseridos no the_content

4

No editor de conteúdo principal de postagens e páginas, podemos inserir vários links para outras postagens / páginas:

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

O que estou tentando fazer é fazer com que o Wordpress adicione automaticamente o ID de, neste caso, a postagem Hello World ao link. Para tentar explicar claramente o que estou querendo, imagine que estou escrevendo um novo post e coloco um link dentro do novo post do blog para o meu post Hello World existente.

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

Onde no exemplo acima, nossa postagem Hello World tem o ID 4. Estudei esta resposta para uma pergunta diferente, mas eu ainda não descobri como obter o ID do post / página que eu estou ligando e adicioná-lo ao elemento âncora. Caso tenhamos mais de um link apontando para o mesmo post / página, pode ser mais seguro usar o atributo rel em vez disso:

<a href="http://example.com/hello-world/" rel="4">Hello World</a>
    
por Glen Mossong 03.05.2016 / 11:14

1 resposta

1

Esta é a solução que eu cheguei com o ponteiro de @bravokeyl

Então, para ficar claro , ele não adiciona os ID's aos links , mas usando o slug do link, consigo obter o ID, que é uma solução para o que eu preciso. Estou usando o JS para passar o URL para essa função e, em seguida, desmembrá-lo para o slug, que é usado apenas no get_page_by_path , que retorna o ID para esse post.

É parte do que estou trabalhando para criar um tema com o Ajax. Essa abordagem também resolve o problema de ter vários links com os mesmos ID's.


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);
}
    
por Glen Mossong 03.05.2016 / 13:03