X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Какой хук выбрать?, Плагин wordpress
Dmit
Dmit
Topic Starter сообщение 28.3.2014, 1:25; Ответить: Dmit
Сообщение #1


Ребята, need help. Допиливаю плагин Image Autorename, wordpress, он сделан чтобы менять alt, title и description загруженной картинки. Замена этих параметров происходит по Хуку save_post, но вордпресс до этого успевает прописать путь к картинке по старому title. Нужен какой-то другой хук. Add_atachment почему-то не срабатывает.
В программировании не силен, полдня убил уже :arbayten:


CODE
<?php

/*
* Plugin Name: Image Autorename
* Plugin URI: http://pixelix.ru/image-autorename/
* Description: Automatically complete fields for files attached to the posts.
* Version: 2.0.3
* Author: Pixelix
* Author URI: http://pixelix.ru
* License: GPL2
* Text Domain: image-autorename
* Domain Path: /lang/
*/

function iar_init() {
load_plugin_textdomain( 'image-autorename', false, dirname( plugin_basename( __FILE__ ) ) . '/lang' );
}
add_action('init', 'iar_init');

function image_autorename($post_id) {
$the_title = get_the_title($post_id);
$get_att = array( 'post_type' => 'attachment', 'post_parent' => $post_id );
$attachments = get_posts( $get_att );
foreach ( $attachments as $attachment ) {
$iar_status = get_post_meta( $attachment->ID, 'iar_status', true );
if ($iar_status != 'no'){
$iar_update = array();
$iar_update['ID'] = $attachment->ID;
$iar_update['post_content'] = $the_title;
$iar_update['post_title'] = $the_title;
//*$iar_update['post_excerpt'] = $the_title;
wp_update_post( $iar_update );
update_metadata('post', $attachment->ID, '_wp_attachment_image_alt', $the_title);
}
}
}
add_action( 'save_post', 'image_autorename' );

function add_iar_column( $columns ) {
$columns[ 'iar_status' ] = __('Autorename', 'image-autorename');
return $columns;
}
add_filter( 'manage_upload_columns', 'add_iar_column', 10, 2 );

function fill_iar_column( $column_name, $post_id ) {
switch( $column_name ) {
case 'iar_status':
$iar_status = get_post_meta( $post_id, 'iar_status', true );
if ($iar_status == 'no'){
_e('Off', 'image-autorename');
echo '&nbsp;&mdash; ';
echo '<a href="admin.php?action=switch_iar_status&post=' . $post_id . '">';
_e('Turn on', 'image-autorename');
echo '</a>';
}
else{
_e('On', 'image-autorename');
echo '&nbsp;&mdash; ';
echo '<a href="admin.php?action=switch_iar_status&post=' . $post_id . '">';
_e('Turn off', 'image-autorename');
echo '</a>';
}
break;
}
}
add_action( 'manage_media_custom_column', 'fill_iar_column', 10, 2 );

function add_iar_status_field( $form_fields, $post ) {
$field_value = get_post_meta( $post->ID, 'iar_status', true );
if($field_value == 'no'){
$select = 'selected="selected"';
}
$form_fields['iar_status'] = array(
'label' => __('Autorename', 'image-autorename'),
'helps' => __('Are fields will be complete after parent post will be update?', 'image-autorename'),
'input' => 'html',
'html' => '
<select name="iar_status_field" id="iar_status_field">
<option value="yes">'.__('On', 'image-autorename').'</option>
<option value="no" '.$select.'>'.__('Off', 'image-autorename').'</option>
</select>
',
);
return $form_fields;
}
add_filter( 'attachment_fields_to_edit', 'add_iar_status_field', 10, 2 );

function save_iar_status_field( $attachment_id ) {
if ( isset( $_REQUEST['iar_status_field'] ) ) {
$iar_status = $_REQUEST['iar_status_field'];
if ($iar_status == 'no'){
update_post_meta( $attachment_id, 'iar_status', 'no' );
}
else {
update_post_meta( $attachment_id, 'iar_status', 'yes' );
}
}
}
add_action( 'edit_attachment', 'save_iar_status_field' );

function switch_iar_status(){
$post_id = (isset($_GET['post']) ? $_GET['post'] : $_POST['post']);
$iar_status = get_post_meta( $post_id, 'iar_status', true );
if ($iar_status == 'no'){
update_post_meta( $post_id, 'iar_status', 'yes' );
}
else{
update_post_meta( $post_id, 'iar_status', 'no' );
}
wp_redirect( admin_url( 'upload.php') );
}
add_action( 'admin_action_switch_iar_status', 'switch_iar_status' );

?>


Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


Сообщение отредактировал Dmit - 28.3.2014, 1:27
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Какой % отказов нормален для сайта?
14 Aloof 3378 Вчера, 13:50
автор: Vmir
Открытая тема (нет новых ответов) Кто где хранит файлы? И какой объем?
просто интересно
22 mark2013 2675 15.4.2024, 8:08
автор: Room
Горячая тема (нет новых ответов) Исчезающие фрилансеры после предоплаты. Зачем? Какой смысл?
36 metvekot 9586 31.3.2024, 1:01
автор: Liudmila
Открытая тема (нет новых ответов) Через какой браузер и как можно найти в кэшэ браузера видео
10 Room 2378 23.3.2024, 7:41
автор: Room
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыКакой сайт пробовать создавать под небольшое ГЕО?
6 kapusta1 1323 15.3.2024, 13:06
автор: OS_ZP_UA


 



RSS Текстовая версия Сейчас: 24.4.2024, 14:25
Дизайн