php WP All Import - Автоматическаявставкашорткодагалереи,неудалосьдоконца。 Нужнообновлятьвручную

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php WP All Import - Автоматическаявставкашорткодагалереи,неудалосьдоконца。 Нужнообновлятьвручную相关的知识,希望对你有一定的参考价值。

<?php
/*
   Plugin Name: URL Gallery
   Plugin URI: https://www.ajsalkeld.com/blog/wp-plugin/2017/08/23/url-gallery-wordpress-shortcode/
   Description: A plugin to make galleries with their URLs.
   Version: 1.0
   Author: Andrew Salkeld
   Author URI: https://www.ajsalkeld.com
   License: GPL2
   */
function ug_get_image_id($image_url) {
	global $wpdb;
	$sgattachment = $wpdb->get_col($wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE guid LIKE '%s';", $image_url ));
	return $sgattachment[0];
}
add_shortcode('old-gal', 'url_gallery');
add_shortcode('url-gallery', 'url_gallery');
function url_gallery($atts){
	extract( shortcode_atts( array(
		'imgs' => '',
		'ids' => '',
	), $atts, 'old-gal' ) );
	extract( shortcode_atts( array(
		'imgs' => '',
		'ids' => '',
	), $atts, 'url-gallery' ) );
	if ($atts['imgs'] != null) {
		$image_names = explode(",",preg_replace('/\s+/', '', $atts['imgs']));
		foreach($image_names as &$image_url) {
			$image_url = ug_get_image_id($image_url);
		}
		$image_names = implode(',', $image_names);
		echo do_shortcode('[gallery ids="'.$image_names.'" size="medium"]');
	}
	elseif ($atts['ids'] != null) {
		echo do_shortcode('[gallery ids="'.$atts['ids'].'" size="medium"]');
	}
}






function my_function( $post_id ){
	
	
//	if ( !wp_is_post_revision( $post_id ) && $_POST['post_type'] == "photos"){
	if ( $_POST['post_type'] == "photos"){
	
		// unhook this function so it doesn't loop infinitely
		remove_action('save_post_photos', 'my_function');
		
		
// =======================
// START	
// =======================

		// Указываем тип записи для которой необходимо применить правки
		$post_type = "photos";
//		$post_id = $post_ID;
		$get_post = get_post($post_id);
		
		//текущий тип поста
		$get_post_type = $get_post->post_type;
		
		if ($get_post_type == $post_type  ){
			
			$get_post_content = $get_post->post_content;
			// Удаляем все изображения
//			$get_post_content_NOT_img = preg_replace('/<img[^>]+./','',$get_post_content);
			// Удаляем блок обвертку изображений
//			if (strpos($get_post_content_NOT_img, 'sigplus-gallery')){
//				$get_post_content_NOT_img = preg_replace('/<div id=\".*\" class=\"sigplus-gallery.*>.*<\/div>/','',$get_post_content_NOT_img);
//			}
			
//			if (strpos($get_post_content_NOT_img, '<p></p>')){
//				$get_post_content_NOT_img = preg_replace("/<p[^>]*><\\/p[^>]*>/",'',$get_post_content_NOT_img);
//			}
			//====================================
			// Получаем вложенные изображения через URL
			// START
			//====================================
			$doc=new DOMDocument();
			//$doc->loadHTML("<html><body>Test<br><img src=\"myimage.jpg\" title=\"title\" alt=\"alt\"></body></html>");
			$doc->loadHTML($get_post_content);
			$xml=simplexml_import_dom($doc); // just to make xpath more simple
			$images=$xml->xpath('//img');
			$IMGs_URLs;
			foreach ($images as $img) {
				// Получаем имена файлов изображений
				$IMGs_NAMEs .= basename($img['src']) . ",";
				// добавляем имена в строку
			    $IMGs_URLs .= $img['src'] . ",";

			}
			    // Удаляем последний символ из конца строки
				$IMGs_URLs = preg_replace("/,$/", "", $IMGs_URLs );
				$IMGs_NAMEs = preg_replace("/,$/", "", $IMGs_NAMEs );

			//s($IMGs_URLs);
			//====================================
			// END
			// Получаем вложенные изображения через URL
			//====================================
			// Создаем массив данных
//			vdd($get_post_content_NOT_img);
			$my_post = array();
			$my_post['ID'] = $post_id;
//			$my_post['post_content'] .= $get_post_content.'Это старый контент'.$IMGs_URLs;
//			$my_post['post_content'] = $get_post_content_NOT_img.'<br>[url-gallery imgs="'.$IMGs_URLs.'"]';
			$my_post['post_content'] = '[url-gallery imgs="'.$IMGs_URLs.'"]';

//			 Обновляем данные в БД
//			if (!$my_post['post_content'] contains 'url-gallery'){
//			if (strpos($my_post['post_content'], 'url-gallery') == false){
			if (!strpos($get_post_content, 'url-gallery')){
				wp_update_post( $my_post );
			}

		}

// =======================
// START	
// =======================

//			 Обновляем данные в БД
//			wp_update_post( $my_post );

		// re-hook this function
		add_action('save_post_photos', 'my_function');
	}
}
add_action('save_post_photos', 'my_function');

以上是关于php WP All Import - Автоматическаявставкашорткодагалереи,неудалосьдоконца。 Нужнообновлятьвручную的主要内容,如果未能解决你的问题,请参考以下文章

markdown ОтправкалидоввБитрикс24изWP

php WP is_page - правильноеиспользованиеопределениястраницвfunction.php

php 元素与WP - Отменаформатированиякраткогоописаниятолькодляопределенныхстраниц

markdown ШаблоныстраницвWP

powershell [Установкаwordpressv0.5]быстраяустановкаwordpressчерезwp-cliснастройками#tags:wordpress,w

php Импортфайловвтовары