2010-07-16 21 views
0

Est-il possible de modifier le slug de la pièce jointe au nom de fichier référent? En bref ... j'utilise le Gallery Shortcode pour créer une galerie basée sur une page simple.Modifier le slogan de shortcode de galerie wordpress en nom de fichier

Je change le nom de fichier original (comme DSC1223.jpg) pendant le processus de téléchargement (à 3b1871561aab.jpg) mais il n'apparaît pas comme slug dans l'URL. Il utilise uniquement DSC1223.

Y a-t-il un changement à apporter?

Cordialement, Steve

La meilleure façon serait d'écrire quelque chose comme ça dans mon functions.php

function twentyten_filter_wp_handle_upload() { 

    $upload = wp_handle_upload(); 

} 

add_filter('wp_handle_upload', 'twentyten_filter_wp_handle_upload', 10, 2); 
+0

Devez-vous automatiser cela sous une forme quelconque? Ou est-ce un hors? Une solution rapide consiste à éditer le champ 'post_name' dans la table de base de données' wp_posts' - c'est là que vous trouverez le 'DSC1223' conservé et utilisé. – TheDeadMedic

+0

Oui, je dois automatiser cela. Ce serait génial pendant la progression du téléchargement. – gearsdigital

Répondre

2

Ajouter cela au hash upload filename plugin et vous devriez être bon d'aller; N'hésitez pas à demander si vous ne savez pas exactement ce que fait chaque ligne!

MISE À JOUR:

Cette fonction crochets sur le cas add_attachment, juste après une nouvelle pièce jointe est enregistrée dans la base de données. Cette action est appelée depuis wp_insert_attachment().

Nous prenons d'abord le nom de fichier de la pièce jointe (get_attached_file()). Ensuite, nous utilisons une fonction PHP native pathinfo() pour obtenir les composants du chemin, et dépouiller le chemin du répertoire et l'extension du fichier.

Puis nous appelons wp_update_post(), en mettant à jour le post_name de la pièce jointe dans la base de données.

+0

Ce serait génial si vous pouviez expliquer votre code :) J'ai trouvé la bonne partie du code dans le wp-admin/include/media.php autour de la ligne 186. Mais je n'arrive pas à trouver un moyen d'accrocher cette fonction parce que je ne sais vraiment pas comment transmettre les données. Merci encore ... M. TheDeadMedic! Si je peux vous aider en quelque sorte ... Ma maison est le frontend :) – gearsdigital

+0

"J'ai trouvé la bonne partie du code dans le wp-admin/include/media.php autour de la ligne 186" - que voulez-vous dire par là? ? Il suffit d'ajouter tout le code dans cette réponse au bas du code de plugin de ma réponse AUTRE, et vous êtes prêt à partir. – TheDeadMedic

+0

Bien sûr. J'ai fusionné les deux parties de votre code et cela fonctionne parfaitement! Je voulais dire que la 'fonction media_handle_upload()' fait normalement le travail. C'est le code approprié pour les titres et légendes par défaut et plus encore. Il va gérer le POST de téléchargement de fichier lui-même et de créer le post de pièce jointe. Je ne peux pas mieux l'expliquer. – gearsdigital