Intereting Posts
imagepng () и прозрачность в библиотеке GD с PHP Обновление и отображение самой последней записи (в БД) после того, как AJAX обновляет значение через PHP Как найти только «новые» сообщения при использовании функций IMAP PHP для почтового ящика POP3? Проверка наличия имени пользователя в AJAX Создание 14-символьного генератора случайных ключей Создание веб-страницы с учетными записями пользователей, что мне нужно иметь в виду? PHP, SimpleXML, декодирование объектов в CDATA Расчет дней недели с указанием номера недели Предотвращение дублирования записей в таблице с помощью PHP ImageMagick не хватает делегатов декодирования PHP создать PDF-счет fb_exchange_token для PHP работает только после того, как пользователь удалит приложение php mysql echo | Как наследовать цвета из формы отправки? Возникли проблемы при попытке установить OAUTH с PECL в MAMP на Mac OS lion Разница между e и E в научной нотации

WordPress Рекомендуемое изображение | Все сообщения, соответствующие имени файла изображения

У меня есть куча старых сообщений в блоге, которые я бы хотел назначить.

Я получил все изображения, которые я хотел бы использовать для каждого сообщения.

Я сохранил каждое имя файла изображения после пули каждого сообщения.

Я хотел бы получить все сообщения, захватить имя slug из каждого сообщения, выполнить поиск по указанному каталогу, в который загружаются файлы изображений, когда post slug совпадает с именем файла изображения, установить это изображение в качестве отображаемого изображения для этого сообщения и перебирать все сообщения.

Я не уверен, как это сделать, но я предоставил некоторый пример кода, который я нашел, а также несколько полезных (надеюсь) ссылок.

Следующий код используется для извлечения всех сообщений и обновления определенного сообщения:

$allPosts = get_posts(array('numberposts' => -1, 'post_type' => 'post')); foreach($allPosts as $thePost){ $my_post = array(); $my_post['post_type'] = $thePost->post_type; $my_post['ID'] = $thePost->ID; $my_post['post_name'] = autoSlug($thePost->post_title); wp_update_post($my_post); } 

Примечание. У меня есть специальная функция для создания столбцов сообщений, основанных на post_title. (Я не использую пул по умолчанию WP.)

Полезные ссылки:

  1. http://codex.wordpress.org/Template_Tags/get_posts
  2. http://codex.wordpress.org/Function_Reference/wp_update_post
  3. http://codex.wordpress.org/Post_Thumbnails
  4. http://codex.wordpress.org/Function_Reference/wp_upload_dir
  5. http://codex.wordpress.org/Function_Reference/wp_insert_attachment

Solutions Collecting From Web of "WordPress Рекомендуемое изображение | Все сообщения, соответствующие имени файла изображения"

Написал сам сценарий вместе с записью в блоге. Взносы за улучшения оцениваются. См. Эту ссылку для ответа. Установите WordPress. Лучшее изображение для всех сообщений. Совпадение имени файла изображения в указанном каталоге :

 <?php // Get All Posts. $allPosts = get_posts(array('numberposts' => -1, 'post_type' => 'post')); // Specify where the images are located. $themePATH = get_theme_root().'/'.get_template().'/thumbs/'; // The uploads directory for your blog. $uploads= wp_upload_dir(); // List of images including extensions. $images = listImages($themePATH,true); // List of images without extensions. $imageNames = listImages($themePATH,false); function reverseSlug($string){ $string = str_replace("-", " ", $string);// Convert hyphen to space $string = ucwords($string);// Capitalize the beginning of each word return $string; } // Retrieve all images from the specified directory. // Output array with and without file extensions. function listImages($dirname=".",$display) { $ext = array("jpg", "png", "jpeg", "gif"); $files = array(); if($handle = opendir($dirname)){ while(false !== ($file = readdir($handle))){ for($i=0;$i<sizeof($ext);$i++){ if(strstr($file, ".".$ext[$i])){ $files[] = $file; } } } closedir($handle); } sort($files); foreach($files as $theFile){ $info = pathinfo($theFile); $fileName = basename($theFile,'.'.$info['extension']); $files1[] = $fileName; } if($display == false){ return ($files1); } if($display == true){ return($files); } } for($i = 0; $i < count($allPosts); $i++){ // Check if post slugs match image slugs. $check[$i] = in_array($allPosts[$i]->post_name, $imageNames); if($check[$i] == 1){ echo 'Yes, post title matches image name.<br />'.PHP_EOL; // Search through the image slugs for a direct match with the post slug. $search[$i] = array_search($allPosts[$i]->post_name, $imageNames); $filename = $images[$search[$i]]; $newfile = $uploads['path'].'/'.$filename; // Copy the image from theme folder to uploads directory. copy($themePATH.$filename, $newfile); // Delete image from theme folder. unlink($themePATH.$filename); // Retrieve the file type from the file name. $wp_filetype = wp_check_filetype(basename($filename), null); // Construct the attachment array. $attachment = array( 'post_mime_type' => $wp_filetype['type'], 'guid' => $uploads['url'].'/'.$filename, 'post_title' => preg_replace('/\.[^.]+$/', '', reverseSlug(basename($filename))), 'post_content' => '', 'post_status' => 'inherit' ); // This function inserts an attachment into the media library. $attach_id = wp_insert_attachment($attachment, $newfile, $allPosts[$i]->ID); // You must first include the image.php file // For the function wp_generate_attachment_metadata() to work. require_once(ABSPATH . 'wp-admin/includes/image.php'); // This function generates metadata for an image attachment. // It also creates a thumbnail and other intermediate sizes // of the image attachment based on the sizes defined on // the Settings_Media_Screen. $attach_data = wp_generate_attachment_metadata($attach_id, $newfile); if(!is_wp_error($attach_id)){ // Update metadata for an attachment. wp_update_attachment_metadata($attach_id, $attach_data); // Updates the value of an existing meta key (custom field) for the specified post. update_post_meta($allPosts[$i]->ID, '_thumbnail_id', $attach_id); } } else{ echo 'No matches found.<br />'.PHP_EOL; } } ?> 

вы сохраняете мою жизнь, ваш код просто нуждается в некоторых настройках и работает как шарм. вот.

 <?php // Get All Posts. $allPosts = get_posts(array('numberposts' => -1, 'post_type' => 'wpdmpro')); // Specify where the images are located. $themePATH = get_theme_root().'/'.get_stylesheet().'/thumbs/'; // The uploads directory for your blog. $uploads= wp_upload_dir(); // List of images including extensions. $images = listImages($themePATH,true); // List of images without extensions. $imageNames = listImages($themePATH,false); function reverseSlug($string){ $string = str_replace("-", " ", $string);// Convert hyphen to space $string = ucwords($string);// Capitalize the beginning of each word return $string; } // Retrieve all images from the specified directory. // Output array with and without file extensions. function listImages($dirname=".",$display) { $ext = array("jpg", "png", "jpeg", "gif"); $files = array(); if($handle = opendir($dirname)){ while(false !== ($file = readdir($handle))){ for($i=0;$i<sizeof($ext);$i++){ if(strstr($file, ".".$ext[$i])){ $files[] = $file; } } } closedir($handle); } sort($files); foreach($files as $theFile){ $info = pathinfo($theFile); $fileName = basename($theFile,'.'.$info['extension']); $files1[] = $fileName; } if($display == false){ return ($files1); } if($display == true){ return($files); } } for($i = 0; $i < count($allPosts); $i++){ // Check if post slugs match image slugs. if (is_array($imageNames)) { $check[$i] = in_array($allPosts[$i]->post_name, $imageNames); } else { echo 'error'; }; if($check[$i] == 1){ echo 'Yes, post title matches image name.<br />'.PHP_EOL; // Search through the image slugs for a direct match with the post slug. $search[$i] = array_search($allPosts[$i]->post_name, $imageNames); $filename = $images[$search[$i]]; $newfile = $uploads['path'].'/'.$filename; // Copy the image from theme folder to uploads directory. copy($themePATH.$filename, $newfile); // Delete image from theme folder. unlink($themePATH.$filename); // Retrieve the file type from the file name. $wp_filetype = wp_check_filetype(basename($filename), null); // Construct the attachment array. $attachment = array( 'post_mime_type' => $wp_filetype['type'], 'guid' => $uploads['url'].'/'.$filename, 'post_title' => preg_replace('/\.[^.]+$/', '', reverseSlug(basename($filename))), 'post_content' => '', 'post_status' => 'inherit' ); // This function inserts an attachment into the media library. $attach_id = wp_insert_attachment($attachment, $newfile, $allPosts[$i]->ID); // You must first include the image.php file // For the function wp_generate_attachment_metadata() to work. require_once(ABSPATH . 'wp-admin/includes/image.php'); // This function generates metadata for an image attachment. // It also creates a thumbnail and other intermediate sizes // of the image attachment based on the sizes defined on // the Settings_Media_Screen. $attach_data = wp_generate_attachment_metadata($attach_id, $newfile); if(!is_wp_error($attach_id)){ // Update metadata for an attachment. wp_update_attachment_metadata($attach_id, $attach_data); // Updates the value of an existing meta key (custom field) for the specified post. update_post_meta($allPosts[$i]->ID, '_thumbnail_id', $attach_id); } } else{ echo 'No matches found.<br />'.PHP_EOL; } } ?>