Tengo un artículo con varias páginas en mi blog de wordpress. si por ejemplo tengo el siguiente enlace en mi blog:
http://example.com/fotos-desgarradoras
alguna idea de cómo puedo cambiar el enlace de la segunda página de
http://ejemplo.com/fotos-desgarradoras/2
para http://example.com/fotos-desgarradoras/CADENA-PERSONALIZADA
CUSTOM-STRING pretendía ser un título personalizado dentro de la página

marin atanasov
Para lograr esto, necesitarás hacer 2 cosas:
-
Deshabilitar la redirección canónica predeterminada de WordPress – esto es necesario, porque WordPress siempre redirigirá a la /2/
page cuando encuentra el parámetro de página en la URL o los argumentos de consulta.
-
Agregue una regla de reescritura personalizada para dirigir su título personalizado a la segunda página de su página – esto es esencialmente necesario para permitir el formato de enlace que desea.
En términos de código, esto es lo que necesita (esta es una solución que funciona, la acabo de probar localmente):
// Removes the canonical redirection
remove_filter( 'template_redirect', 'redirect_canonical' );
// Add custom rewrite rules
add_action( 'init', 'my_add_custom_rewrite_rules' );
function my_add_custom_rewrite_rules() {
// Slug of the target page
$page_slug = 'heartbreaking-photos';
// Page number to replace
$page_num = 2;
// Title you wish to replace the page number with
$title="custom-string";
// Add the custom rewrite rule
add_rewrite_rule(
'^' . $page_slug . "https://stackoverflow.com/" . $title . '/?$',
'index.php?pagename=" . $page_slug . "&page=" . $page_num, "top'
);
}
Hay tres cosas que quizás desee configurar o cambiar aquí:
$page_slug
– este es el slug de tu página, en tu caso este es heartbreaking-photos
$page_num
– el número de su página de paginación, en su caso esto es 2
$title
– el título que desea utilizar en lugar de su número de página 2
.
Siéntase libre de modificar el código como desee, o copiarlo para cubrir más casos adicionales, similares a este.
EDITAR
Importante: Una vez que use el código, vaya a Configuración > Enlaces permanentes y haga clic en el botón “Guardar cambios”. Esto reconstruirá sus reglas de reescritura y es necesario para que la solución funcione.
Espero que ayude. Hazme saber si tienes alguna pregunta.
Puedes probar este códice. Pase el argumento y obtendrá la identificación de la página, el título de la página y los usará
https://codex.wordpress.org/Function_Reference/get_pages

O puede llamar al título de la página por ID de página
$pagetitle= get_post_field( 'post_title', $page_id );
Ok, básicamente no desea mostrar el enlace de navegación debajo de la página (use css o modifique la plantilla de publicación en el tema secundario) y agregue su enlace personalizado. Si lo entiendo bien:
Elimina los enlaces de navegación (depende de tu tema, pero básicamente):
.nav-links { display: none; }
Puede agregar el enlace personalizado a través de la función + campos personalizados:
cree un campo personalizado, por ejemplo, “my-url” en su publicación, consulte el códice: https://codex.wordpress.org/Custom_Fields
agregue a su functions.php (en el tema secundario o en un complemento de sitio personalizado):
function my_page_add_to_content( $content ) {
if ( ! empty(get_post_meta( get_the_ID(), 'my-url', true ) ) {
$content .= '<a href="'.get_post_meta(%20get_the_ID(),%20'my-url',%20true%20).'">URL TEXT HERE</a>'
}
return $content;
}
add_filter( 'the_content', 'my_page_add_to_content' );