Agregar ID de publicación / página a los enlaces insertados dentro del contenido

4

Dentro del editor de contenido principal de publicaciones y páginas, podemos insertar múltiples enlaces a otras publicaciones / páginas:

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

Lo que estoy tratando de hacer es hacer que Wordpress agregue automáticamente la identificación de, en este caso, la publicación de Hello World al enlace. Para intentar explicar claramente lo que quiero, imagina que estoy escribiendo una nueva publicación de blog y coloco un enlace dentro de la nueva publicación de blog en mi publicación existente de Hello World.

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

Donde en el ejemplo anterior, nuestra publicación Hello World tiene el ID de 4. He estado estudiando esta respuesta a una pregunta diferente, pero aún no he descubierto cómo obtener el ID de la publicación / página a la que estoy enlazando y agregarlo al elemento delimitador. En caso de que tengamos más de un enlace que apunte a la misma publicación / página, podría ser más seguro usar el atributo rel en su lugar:

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

1 respuesta

1

Esta es la solución a la que llegué gracias al puntero de @bravokeyl

Entonces, para ser claros, no agrega la ID a los enlaces , pero al usar la barra de enlace puedo obtener la ID, que es una solución para lo que necesito. Estoy usando JS para pasar la URL a esta función y luego la estoy eliminando solo para el slug que se usa dentro de get_page_by_path , que luego devuelve el ID para esa publicación.

Es parte de lo que estoy trabajando para construir un tema potenciado por Ajax. Este enfoque también resuelve el problema de tener múltiples enlaces con la misma 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);
}
    
respondido por el Glen Mossong 03.05.2016 - 13:03

Lea otras preguntas en las etiquetas