Intereting Posts
Попытка получить новую роль для прав на редактирование для настраиваемого типа контента Создайте короткий код в WordPress, снова Можете ли вы запускать wordpress с несколькими доменами одновременно (не многосетевыми)? Почему указание «about-us» в качестве цели ссылки занимает больше времени, чем указание «about-us /»? Удаляет ли wp_delete_user () все содержимое пользователя? Функция определения меню WordPress Admin – это отдельный файл Показывать пользовательские категории таксономии, список сообщений и одиночную запись через AJAX Как получить присоединенную галерею в API для остальных? Вызов виджета через функцию в файлах тем (жесткий код) Получите все сообщения, в которых мета-поле с множественным выбором имеет несколько значений, проверенных Регистрация пользователей 30 дней назад (или больше) Сортировка столбца по мета-ключу и мета-значению Передайте параметры таксономии next_post_link ()? Внешние данные для короткого кода подключаемого модуля для чтения Назначение персонализированного сообщения для пользовательской таксономии на основе настраиваемого значения поля

Название галереи изображений – получить сообщение

Есть ли возможность сделать функцию hook, которая автоматически отменяет названия добавленных изображений (или добавляется при создании галереи) с заголовком сообщения? Как и в примере: – im создаю сообщение под названием lorem ipsum – я загружаю файл под названием pingpong.jpg – без глюков по умолчанию wordpress даст заголовок изображения: pingpong.jpg – ожидаемый результат крючка: после загрузив изображение, мое изображение будет выглядеть следующим образом: lorem ipsum

это возможно даже через функции?

в верхней части этого я хотел бы использовать автоматическое добавление атрибута в shortcode галереи, который будет обрабатывать изменение. До сих пор у меня есть что-то вроде этого:

add_filter('shortcode_atts_gallery','overwrite_gallery_atts_wpse_95965',10,3); function overwrite_gallery_atts_wpse_95965($out, $pairs, $atts){ $out['parent_titles']='yes'; return $out; } 

Solutions Collecting From Web of "Название галереи изображений – получить сообщение"

Заголовок изображения в галерее – как заголовок сообщения. Он прикреплен к

Вот один из способов сделать это с помощью специального атрибута parent_titles в parent_titles собственной галереи.

Этого можно добиться, установив suppress_filters в false для запроса галереи и изменив выдержки из сообщений через фильтр the_posts . Затем мы можем проверить входы пользовательских атрибутов через фильтр shortcode_atts_gallery .

пример

Используя parent_titles в качестве логической строки, мы могли бы использовать ее, как показано здесь:

 [gallery parent_titles="yes" ids="132,321,213"] [gallery parent_titles="true" ids="132,321,213"] [gallery parent_titles="1" ids="132,321,213"] 

Вот несколько скриншотов из тестового файла, который я создал для @JuliaGalden

Сначала я создал три сообщения и привязал к ним соответствующее цветное изображение:

сообщений

Затем я создал галерею с:

 [gallery ids="132,321,213"] 

который появился с подписями изображения, такими как:

нормальный

Затем я добавил пользовательский атрибут:

 [gallery parent_titles="yes" ids="132,321,213"] 

и это выглядело так:

С родительскими титулами

где титры теперь являются заголовками из родительских сообщений.

Демо-плагин

Вот демо-плагин, который может поддерживать эту функцию (PHP 5.4+):

 <?php /** * Plugin Name: Gallery Image Caption As The Parent Post's Title * Description: Support for boolean parent_titles attribute in native post galleries * Plugin URI: http://wordpress.stackexchange.com/a/228857/26350 * Version: 1.0.1 */ namespace WPSE\Q228851; class Main { /** * @var bool */ private $active; /** * Setup actions and filters */ public function activate() { add_filter( 'shortcode_atts_gallery', [ $this, 'shortcode_atts_gallery' ], 999, 3 ); add_action( 'pre_get_posts', [ $this, 'pre_get_posts' ] ); add_filter( 'the_posts', [ $this, 'the_posts' ] ); } /** * Activate if the parent_titles attribute is set */ public function shortcode_atts_gallery( $out, $pair, $atts ) { if( isset( $out['parent_titles'] ) && wp_validate_boolean( $out['parent_titles'] ) || isset( $atts['parent_titles'] ) && wp_validate_boolean( $atts['parent_titles'] ) ) $this->active = true; return $out; } /** * Don't suppress filters for the gallery posts query */ public function pre_get_posts( \WP_Query $q ) { if( $this->active ) $q->set( 'suppress_filters', false ); } /** * Override each image title with the title of post it's attached to */ public function the_posts( $posts ) { if( $this->active ) { foreach( $posts as $post ) { if( $post->post_parent ) $post->post_excerpt = get_post_field( 'post_title', $post->post_parent ); } $this->active = false; } return $posts; } } // end class /** * Activate */ ( new Main )->activate(); 

Как установить : Скопируйте этот код в файл /wp-content/plugins/galleries-with-parent-post-titles/plugin.php и активируйте плагин в /wp-content/plugins/galleries-with-parent-post-titles/plugin.php wp-admin обычным способом. Затем добавьте parent_titles="yes" в parent_titles="yes" галереи, где вы хотите отобразить родительские заголовки.

Автоматическая активация для всех галерей

Чтобы сделать это автоматически для всех галерей, мы можем изменить метод Main::shortcode_atts_gallery() для:

  public function shortcode_atts_gallery( $out, $pair, $atts ) { $this->active = true; return $out; } 

или используйте следующий фильтр, созданный @JuliaGalden, который можно проверить, например, в functions.php :

 add_filter('shortcode_atts_gallery', 'overwrite_gallery_atts_wpse_95965', 10, 3 ); function overwrite_gallery_atts_wpse_95965( $out, $pairs, $atts ) { $out['parent_titles'] = 'yes'; return $out; } 

Если мы хотим использовать его в плагине, мы должны изменить его на

 add_filter( 'shortcode_atts_gallery', __NAMESPACE__ . '\\overwrite_gallery_atts_wpse_95965', 10, 3 ); function overwrite_gallery_atts_wpse_95965( $out, $pairs, $atts ) { $out['parent_titles']='yes'; return $out; } 

поскольку мы добавили пространство имен для нашего плагина.

Мы могли бы также создать фильтр:

 $this->active = apply_filters( 'wpse_gallery_parent_titles', true, $atts, $pair ); 

… и т. д., и т. д., но я оставлю его здесь на данный момент 😉