web-dev-qa-db-fra.com

Crée de jolis liens permanents pour un message connaissant la structure de liens permanents

Comment puis-je générer correctement un joli permalink pour un message connaissant la structure de permalink?

Mes publications ont été traitées avec le plug-in FeedWordPress avec le paramètre "Lien" défini sur "Les liens permanents pointent vers: La copie sur le site Web d'origine".

Ainsi, pour tous les articles de la zone d'administration, lors de l'édition d'un article, le champ "Permalink" situé sous le titre de l'article affiche l'URL d'origine du site externe, qui est stockée dans les métadonnées "syndication_permalink".

Ce que je voudrais faire est de générer un joli permalien pour tous les posts qui indiqueraient un hôte local (c’est-à-dire que le post aura un permalien de type "http://mysite.com/" plutôt qu’un lien externe vers une source), afin que je puisse mettre à jour les permaliens dans DB.

Je peux obtenir la structure permalien en utilisant get_option('permalink_structure'). Existe-t-il une fonction WP que je puisse utiliser pour obtenir un joli permalien correctement généré pour un message par son ID?

J'espère que cela a du sens.

Merci, Dasha

1
dashaluna

GUID et permalink sont deux choses complètement indépendantes. Les GUID sont généralement basés sur des permaliens, mais ils ne doivent pas nécessairement l'être. Les permaliens ne sont en aucun cas basés sur des GUID dans les WP modernes (ils avaient été modifiés il y a longtemps).

Si vos permaliens ne sont pas générés correctement, alors ce plug-in (ou un autre) casse quelque chose d'une mauvaise manière, il n'a aucun lien avec ce que contient votre GUID.

0
Rarst

Les permaliens ne sont pas quelque chose qui est "généré" en soi ... ils sont quelque chose qui est analysé pour indiquer un certain post.

Si vous avez importé des publications à l'aide de FeedWordPress, FeedWordPress ne modifie pas réellement votre permalien ... il crée simplement un champ de méta-post appelé "syndication_permalink" qu'il utilise ensuite pour filtrer des fonctions telles que get_permalink, etc. Si vous supprimez ce champ ou supprimer le filtre (c.-à-d. désactiver le plugin), des fonctions comme get_permalink pointeront vers la publication locale.

Alternativement, FWP inclut une fonction pour obtenir le permalien local. Essayez d'appeler get_local_permalink( $post_ID ) pour cela.

0
goldenapples