سؤال

وطيب هذا هو القليل من المجمع. أنا خلق المساعد، وتريد العثور على معرف فئة من الصفحة بوست.

وهذا هو الجزء السهل.

ما يجعلها معقدة هو أنا أفعل ذلك ضمن ob_start (التي في العمل "template_redirect ') كما أريد لتحرير صفحة كاملة قبل فإنه يتم إرجاعها إلى المستعرض. مرة أخرى هذا هو السهل بما فيه الكفاية من وظيفة ob_start.

ومع ID عاد أريد أن تقييم بعض فب تخزينها في حقل SQL. واني اسعى الى القيام بذلك من خلال وظيفة ob_start

$tui_cifp_insertvalue = tui_cifp_evaluate_html($tui_cifp_insertvalue);

وهذا يستدعي هذا

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

والذي في المكالمات بدوره

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

وعلى فب اني اسعى الى تقييم هو.

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

وهذا كله يعمل خارج روتين ob_start، ولكن هنا لا تعمل حتى فب بسيط. من داخل روتين ob_start فواصل المساعد وعوائد صفحة فارغة.

وحتى ظننت أنني يمكن تقييم فب قبل بداية ob_start وتمرير النتيجة من خلال متغير عمومي. أن يعمل، ولكن عند نقطة هذا يبدأ باستخدام ما يلي، وID فئة غير متوفر.

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

function tui_cifp_ob_start()
{

ob_start('tui_cifp_templatefilter');

}

طيب أنا متعكز ... أي أفكار؟

وإما أنا في حاجة للعثور على ربط الذي ينفذ في الوقت المناسب حتى يتسنى لي الحصول على معرف الفئة، أو لست بحاجة للعمل على كيفية تقييم فب خلال ob_start.

وأوه ... أعتقد أنني يجب أن أقول. ما أريد القيام به هو استبدال علامة على صفحة وورد مع بعض المعلومات الأخرى التي تم حفظها في سلسلة، ولكن تحتاج إلى أن تكون قادرة على القيام بذلك مرة واحدة على صفحة كاملة إذا استخلاصها.

والشكر ستيفن

وPS لقد طلبت هذا على المنتديات وورد دون رد. آسف للعبر نشر ولكن أنا يائسة قليلا.

هل كانت مفيدة؟

المحلول 2

وبفضل OIS، ونقدر لكم اقتراح هذا الحل. ومع ذلك فإنه يفعل نفس الشيء كما كنت افعل. أعتقد أن بناؤها بشكل مختلف.

وولم ذلك تسبب لي أن ننظر إلى المشكلة من مختلف المحتملين.

ما أدركت أن كان get_the_category() يحتاج معلمة وعدم الحصول على الفئة لأنها كانت ID المشاركة التي لم تكن متوفرة. أنا حل المشكلة عن طريق القيام الإعداد في خط الهجوم مثل ذلك.

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');

    }

}

وشكرا مرة أخرى.

نصائح أخرى

وايم لا جزئي لحدة التقييم، ولكن يبدو أن هذا العمل، مع أو بدون التخزين المؤقت الناتج في نهاية ...

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();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top