Otomatik olarak Wordpress özel alan değerlerini üreten

4 Cevap php

I run a few side blogs that I sort of aggregate into my main blog. I use simplepie to parse the feeds from my other blogs, so the posts are being created automatically.

Benim tipik sonrası bu gibi dışarı koydu:

  1. GÖRÜNTÜ
  2. İÇERİK / METİN
  3. HYPERLINK

Ne yapmak için arıyorum otomatik köprü kapmak ve Özel Alan takın olduğunu. Özel alan zaten yazı var, ama değer olarak sonrası içeriğinde bulunan köprüyü eklemek gerekir.

Ben html olmadan, sadece bağlantı gerekir, bu yüzden değeri, sadece düz bir link olacaktır - http://domain.com/fsdds

Ben görüntüleri ile bunu gerçekleştirmek eklentileri bir dizi olduğunu biliyorum, ama ben köprüler gibi, başka bir şey ile yapacak bir şey görmedim.

Ben Wordpress forumlarında bu soruyu üzerinde yayınlanan ve ben sorun ben bunu nasıl çok emin değilim olduğunu biliyordu bağlantıları, arayan tüm yayın içeriğini ayrıştırmak olurdu söylendi.

Teşekkürler

4 Cevap


Eğer bağlantı aldıktan sonra Anthony cevabı üzerine inşa GÜNCELLEME POST META kullanabilirsiniz ...

Functions.php dosyasına bu koyun:

function catch_that_link() {
      global $post, $posts;
      $first_link = '';
      ob_start();
      ob_end_clean();
      $output = preg_match_all('/(https?://)?(www.)?([a-zA-Z0-9_%]*)\b.[a-z]{2,4}(.[a-z]{2})?((/[a-zA-Z0-9_%])+)?(.[a-z])?/', $post->post_content, $matches);
      $first_link = $matches [1] [0];

      if(empty($first_link)){ //Defines a default image
        return 'no link found';
      }
      return $first_link;
    }

Sonra sorgu döngü, kategori dosyası ya da her türlü php dosyası size aşağıdaki yapardın

<?php 

$post_id = 13; //replace the number with the specific post
$meta_key = 'key_example' //replace with your custom field name
$meta_value = catch_that_link();

update_post_meta($post_id, $meta_key, $meta_value); 
?> 

Bu yazı ilk görüntü kapmak fonksiyonudur:

function catch_that_image() {
      global $post, $posts;
      $first_img = '';
      ob_start();
      ob_end_clean();
      $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
      $first_img = $matches [1] [0];

      if(empty($first_img)){ //Defines a default image
        $first_img = "/images/default.jpg";
      }
      return $first_img;
    }

Sadece ilk preg_match_all parametreyi değiştirmeniz gerekir:

'/ (Https? :/ /?) (Www.)? ([A-zA-Z0-9_%] *) \ b. [Az] {2,4} (. [Az] {2})? ( (/ [a-zA-Z0-9_%] )+)?(.[a-z]) /? '

Add the whole function to your functions.php, and call that function from your script. It should return the first link it finds in the post content.

Ben kendimi bu konuda düşünüyordum ve çözüm save_post eylem kanca bir işlevi çalıştırmak olmak zorundadır. Ne yazık ki bu Wordpress Kodeksi belgelenmemiş ve ben henüz fazla mesafelere bakmaya zamanım olmadı.

Sadece bu Function Reference/add post meta tökezledi

Hala görevinden köprüyü kapmak ve ve ancak $ metavalue olarak eklemek için bir yol gerekir.