Intereting Posts
get_posts () возвращает все сообщения, а не те, которые заданы с помощью 'post_author' => Как вы можете загрузить изображение на странице настроек? удалить действие из плагина AMP Получить категории с сообщениями по настраиваемому значению поля Как обновить ядро ​​WordPress или темы и по-прежнему работать с моими дочерними темами Массовое редактирование текста пользовательского отрывка в WordPress Изменить логотип на каждой странице темы университетского концентратора API настроек с примером массивов Установите уникальный term_id из пользовательских мета-ключей Как узнать полный путь к шаблону страницы? Рандомизация выбора цветовой схемы в теме Query Posts, но только возвращает 1 из пользовательской таксономии? Пользовательское поле Singleton (Meta Box) .htaccess пароль защищает все, кроме одной страницы Вставка слова в пользовательскую таксономию

Получение эскизов с другого сайта WP

У меня есть две установки WordPress, одна на http://inversekarma.in и другая на http://inversekarma.in/photos . Последний – фотоблог, и его тема использует стандартные миниатюры WP post ( EDIT: отличные изображения, если быть точным!). Есть ли способ показать самые последние эскизы со второго сайта на боковой панели моего первого сайта?

Solutions Collecting From Web of "Получение эскизов с другого сайта WP"

Есть (по крайней мере) два (2) способа приблизиться к этому:

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

  2. Вы можете создать простой канал JSON для своего блога фотографии и потреблять фид на своем основном блоге и кэшировать его на короткое время. Это приведет к небольшой задержке загрузки страницы, когда срок действия кеша истечет, но поскольку оба находятся на одном компьютере, это не должно быть проблемой.

Дайте мне знать, что вы предпочтете, и если я обновлю ответ так, как вы.

ОБНОВИТЬ

Чтобы подключиться к другой базе данных, вы можете узнать больше об этом здесь:

  • Использование wpdb для подключения к отдельной базе данных

Итак, вот что я взломал для вас, функцию show_thumbnails_2nd_db() которую вы можете скопировать в файл functions.php вашей темы:

 function show_thumbnails_2nd_db() { global $wpdb; global $table_prefix; $save_wpdb = $wpdb; $save_prefix = $table_prefix; include_once(ABSPATH . '/photos/database-credentials.php'); extract($database_credentials); $wpdb = new wpdb($DB_USER, $DB_PASSWORD, $DB_NAME, $DB_HOST); wp_set_wpdb_vars(); // This is the code for featured images $sql = <<<SQL SELECT DISTINCT CONCAT('<img src="',attachment.guid,'"/>') AS url FROM {$wpdb->posts} attachment INNER JOIN {$wpdb->postmeta} ON attachment.ID={$wpdb->postmeta}.meta_value AND {$wpdb->postmeta}.meta_key='_thumbnail_id' INNER JOIN {$wpdb->posts} ON {$wpdb->posts}.ID={$wpdb->postmeta}.post_id WHERE {$wpdb->posts}.post_status='publish' AND attachment.post_type='attachment' ORDER BY attachment.ID DESC LIMIT 10 SQL; $post_urls = $wpdb->get_col($sql); if (is_array($post_urls)) echo implode("\n",$post_urls); // This is the code for post thumbnails // $sql = <<<SQL // SELECT DISTINCT {$wpdb->posts}.ID // FROM {$wpdb->posts} // INNER JOIN {$wpdb->posts} attachment // ON {$wpdb->posts}.ID=attachment.post_parent // WHERE {$wpdb->posts}.post_status='publish' // AND attachment.post_type='attachment' // ORDER BY attachment.ID // LIMIT 10 // SQL; // $post_ids = $wpdb->get_col($sql); // foreach($post_ids as $post_id) { // $thumbnail = get_the_post_thumbnail($post_id); // if ($thumbnail) { // echo $thumbnail; // } // } $table_prefix = $save_prefix; $wpdb = $save_wpdb; } 

Примечание. Предположим, что вы создали database-credentials.php в корневом блоге вашего блога фотографий и должны выглядеть следующим образом:

 <?php $database_credentials = array( 'DB_NAME' => 'your_database', 'DB_USER' => 'your_db_user', 'DB_PASSWORD' => 'your db password', 'DB_HOST' => 'localhost', 'table_prefix' => 'your_photos_db_prefix_', ); 

Затем внутри /wp-config.php для вашего блога фотографий вы замените разделы кода, которые выглядят следующим образом:

 // ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define('DB_NAME', 'your_database'); /** MySQL database username */ define('DB_USER', 'your_db_user'); /** MySQL database password */ define('DB_PASSWORD', 'your db password'); /** MySQL hostname */ define('DB_HOST', 'localhost'); 

И это:

 $table_prefix = 'wp_'; 

С этим:

 include_once(ABSPATH . '/database-credentials.php'); // ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define('DB_NAME', $database_credentials['DB_NAME']); /** MySQL database username */ define('DB_USER', $database_credentials['DB_USER']); /** MySQL database password */ define('DB_PASSWORD', $database_credentials['DB_PASSWORD']); /** MySQL hostname */ define('DB_HOST', $database_credentials['DB_HOST']); $table_prefix = $database_credentials['table_prefix']; 

Если вам нужно больше объяснений, просто спросите в комментариях.

Ответ Майка велик, но я бы использовал другой SQL-запрос, так как GUID сообщения вложения может измениться при смене серверов или перемещении блога. Моя версия также дает вам доступ к информации в сообщении в блоге, что полезно, если вы хотите установить ссылку на нее.

 SELECT post.ID, post.post_title, attachment_meta.meta_value AS upload_relative_path FROM {$wpdb->posts} AS post JOIN {$wpdb->postmeta} AS post_meta ON (post_meta.post_id = post.ID AND post_meta.meta_key = '_thumbnail_id') JOIN {$wpdb->postmeta} AS attachment_meta ON (attachment_meta.post_id = post_meta.meta_value AND attachment_meta.meta_key = '_wp_attached_file') WHERE post.post_status = 'publish' AND post.post_type = 'post' ORDER BY post.post_date DESC LIMIT 10 

Вместо _wp_attached_file вы также можете получить значение _wp_attachment_metadata , которое содержит дополнительную информацию об изображении и альтернативных размерах.