Eval Sayı vs Wordpress Kategori Kimliği

2 Cevap php

Tamam bu biraz karmaşık. Ben bir eklenti oluşturma ve Mesaj sayfasından kategori kimliğini bulmak istiyorum duyuyorum.

Bu kolay kısmı.

Ben tarayıcıya döndürülen önce tam sayfa düzenlemek istediğiniz gibi ne karmaşık hale getirir I (a 'template_redirect' eylemi başladı) bir ob_start içinde bunu yapıyorum edilir. Yine bu ob_start fonksiyonun yeterince kolaydır.

Kimliği iade ile ben bir sql alanında depolanan bazı php değerlendirmek istiyorum. Ben ob_start işlevi içinde bunu yapmak için çalışıyorum

$tui_cifp_insertvalue = tui_cifp_evaluate_html($tui_cifp_insertvalue);

Bu, bu çağrıları

function tui_cifp_evaluate_html($string) {
return preg_replace_callback("/(<\?php|<\?|< \?php)(.*?)\?>/si",'EvalBuffer', $string);
}

Hangi dönüş çağrıları

function EvalBuffer($string) {
ob_start();
eval("$string[2];");
$ret = ob_get_contents();
ob_end_clean();
return $ret;
}

Ve ben değerlendirmek için çalışıyorum php.

<?php tui_findPostThumbIMG([categoryID],100,100,'categoryintro-thumbnail','','',''); ?>

Ob_start rutin dışında bu tüm işleri, ama burada bile basit php çalışmaz. Eklenti sonları ve boş bir sayfa döner ob_start rutin içinde.

Bu yüzden ben ob_start başlamadan önce php değerlendirmek ve global bir değişken üzerinden geçmesi sonucunu düşündüm. O çalışır, ama bir noktada bu aşağıdaki kullanmaya başlar, kategori kimliği mevcut değil.

if ( strpos($_SERVER['REQUEST_URI'], 'wp-admin') === false ) {

global $holdvalue;

$tui_cifp_insertvalue = get_option('tui_cifp_insertvalue');

$categories = get_the_category();
$categoryID = $categories[0]->cat_ID;

$tui_cifp_insertvalue = str_replace("[categoryID]", $categoryID, $tui_cifp_insertvalue);

$holdvalue = tui_cifp_evaluate_html($tui_cifp_insertvalue);

add_action('template_redirect','tui_cifp_ob_start'); //

}

Ob_start fonksiyonu

function tui_cifp_ob_start()
{

ob_start('tui_cifp_templatefilter');

}

Tamam ben ... herhangi bir fikirleri stumped?

Ben de ben kategori kimliği erişimi, ya da ben ob_start sırasında php değerlendirmek için nasıl çalışmak gerekir, böylece doğru zamanda yürüten bir kanca bulmalıyız.

Ah ... Ben demeliyim sanırım. Ne yapmak istediğinizi bir dize kaydedilen diğer bazı bilgiler ile bir wordpress sayfada bir etiket yerine, ama çizilmiş eğer tam sayfa bir kez yapmak gerekiyor olduğunu.

Thanks Stephen

PS I bir yanıt olmadan wordpress forumlarında bu istediler. Çapraz nakil için özür dilerim ama ben biraz umutsuz değilim.

2 Cevap

Teşekkürler OIS, ben senin bu çözüm öneren teşekkür ederiz. Ben yapıyor gibi Ancak aynı şeyi yapıyor. Ben farklı yapılandırılmış sanırım.

Ancak beni farklı bir prospektif gelen soruna bakmak için neden yoktu.

Ne fark get_the_category(), parametre ve mevcut değildi Post ID çünkü bir kategori elde değil idi. Ben ön yüzden gibi kurulum yaparak sorunu çözdü.

function tui_cifp_ob_start()
{

    global $tui_cifp_message, $tui_cifp_div, $wp_query;

    if (is_single()) 
    {

        $tui_cifp_div = get_option('tui_cifp_div');

        if ($tui_cifp_div !== '') 
        {

        $thePostID = $wp_query->post->ID;
        $categories = get_the_category($thePostID); 
        $categoryID = $categories[0]->cat_ID;

        $tui_cifp_message = get_option('tui_cifp_message');

        $categoryTitle = $categories[0]->cat_name;
        $categoryDescription = $categories[0]->category_description;

        $tui_cifp_message = str_replace("[categoryID]", $categoryID, $tui_cifp_message);
        $tui_cifp_message = str_replace("[categoryTitle]", $categoryTitle, $tui_cifp_message);
        $tui_cifp_message = str_replace("[categoryDescription]", $categoryDescription, $tui_cifp_message);
        $tui_cifp_message = $tui_cifp_div.$tui_cifp_message;

        $tui_cifp_message = tui_cifp_evaluate_html($tui_cifp_message);

        }

        ob_start('tui_cifp_templatefilter');

    }

}

Tekrar teşekkürler.

Im eval kısmi, ama bu sonunda çıkış tamponlama ile veya olmadan, iş gibi görünüyor değil ...

function tui_findPostThumbIMG()
{
 echo "hey hey\n";
}

ob_start();
$categoryID = 10;
$tui_cifp_insertvalue = "<?php tui_findPostThumbIMG([categoryID],100,100,'categoryintro-thumbnail','','',''); ?>";
$tui_cifp_insertvalue = str_replace("[categoryID]", $categoryID, $tui_cifp_insertvalue);
$tui_cifp_insertvalue = tui_cifp_evaluate_html($tui_cifp_insertvalue);
echo $tui_cifp_insertvalue;
ob_end_flush();